2012-05-16 2 views
0

선택한 셀의 색을 변경하는 코드를 만들었습니다. 일반적으로 그 코드를 Sheet1 VBA 파일이나 내가 사용하고있는 시트에 넣습니다.클래스 모듈 내의 Woorksheet 이벤트

클래스 모듈 파일에 넣으므로 다른 워크 시트 나 Excel 파일에 쉽게 구현할 수 있습니다.

클래스 모듈은 심지어 적합한 장소입니까? 필자의 전체 아이디어는 이러한 종류의 이벤트와 코드를 다른 Excel 파일로 마이그레이션 할 수있을뿐만 아니라 이벤트를 켜거나 끄는 쉬운 방법 몇 가지를 사용하는 것입니다.

이 문제에 대한 최선의 접근 방법은 무엇이라고 생각하십니까?

코드는 다음과 같이 진행됩니다

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If (Range("A1").Value = "yes") Then 
     Dim iColor As Integer 
     On Error Resume Next 
     iColor = Target.Interior.ColorIndex 
     iColor = 36 
     Cells.FormatConditions.Delete 
     Target.FormatConditions.Add Type:=2, Formula1:=iInternational 
     Target.FormatConditions(1).Interior.ColorIndex = iColor 
    Else 
     Cells.FormatConditions.Delete 
    End If 
End Sub 
+2

에서 ThisWorkbook에서이 코드를 퍼팅 :

다음은 그 시작 얻을 수있는 좋은 장소입니다. 그런 간단한 일을위한 클래스 모듈에 대한 필요가 없습니다 :) –

+0

문제는 내가 하나 이상의 Excel 파일에서 사용하기 위해 일반화하고 싶다는 것입니다. 모든 엑셀 파일로 가져올 수 있기를 바랍니다. 그리고 클래스 모듈을 통해 Excel로 가져올 수 있으며 모든 Excel 파일에 복사/붙여 넣기 할 필요가 없습니다 – ttkalec

답변

1

싯다 르트 나라 얀은에 장소입니다. 클래스 모듈은 필요하지 않습니다. 문제를 해결하려면 코드를 작성하여 통합 문서 코드를 업데이트하면 .bas 파일에있는 모든 모듈을 가져 와서 통합 문서의 개체로 복사 할 수 있습니다.

그래서 myLibrary.bas에 Worksheet_Change 코드가있는 경우이를 복사하여 통합 문서의 각 워크 시트 개체에 넣을 수 있습니다. -`또한 당신이 원하는 것을 달성 (개체로 ByVal으로 대상 범위로 ByVal의 쉿)`개인 서브 Workbook_SheetChange Working with Modules

+0

그래서 자동화 된 방법이 없습니까? 항상 내 .bas 파일 또는 다른 곳의 코드를 워크 시트 객체에 복사해야합니까? – ttkalec

+0

내가 제안하는 것은 코드의 대처를 자동화하는 것입니다. 하나의 통합 문서에 "라이브러리"로 저장하려는 모든 코드를 고르고 선택한 모듈에 특정 통합 문서를 선택하는 함수를 작성합니다. –

+0

Scott 감사합니다. 나는 그 해결책을 생각하지 않았다. – ttkalec