반응형
Excel 워크시트_변경 이벤트가 작동하지 않습니다.
열을 변경하면 워크시트가 자동으로 저장되는 매크로를 작성하려고 합니다.
Excel 시트가 다음 시간까지 확장됩니다.G25
.
이것을 시도해 보았지만 작동하지 않습니다.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("G25")) Is Nothing Then
ActiveWorkbook.Save
End Sub
나는 그것을 아래에 저장했습니다.ThisWorkBook
.
어떤 도움이든 감사합니다.
이 워크북에서 해당 처리기를 호출합니다.Workbook_SheetChange
그리고 그것은 두 개의 인수, Sh(유형)를 받아들입니다.Object
) 및 대상(a)Range
. 그래서, 당신의 코드는 작동하지 않습니다.
이 워크북 대신 원하는 시트(예: 시트 1)에 코드를 넣는다면,End If
범위를 "A1:G25"(1열 A에서 25열 25열까지 정사각형을 나타냄)로 변경하면 작동합니다.이 작업은 다음과 같습니다.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("A1:G25")) Is Nothing Then
MsgBox "changed"
End If
End Sub
전체성을 위해 이 워크북에서 다음과 같이 작동합니다.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("A1:G25")) Is Nothing Then
MsgBox "changed"
End If
End Sub
이벤트가 작동하지 않는 다른 일반적인 이유는 EnableEvents가 False로 설정되었기 때문입니다.
나는 당신의 문제를 이렇게 코드화할 것입니다.
- 일반적으로 테스트할 관심 범위에 대해 작업해야 합니다.변수 생성
rng1
아래는 조기 종료 지점 및 작업할 범위 개체 역할을 모두 수행합니다.시트 이벤트에서Target.Worksheet.Range("A1:G25")
효과는 있겠지만 실제 사용하기에는 길어요. 조작할 범위가 있는 경우 시트를 추가로 변경하면 변경 이벤트 등이 호출되어 Excel이 충돌할 수 있습니다.따라서 추가 이벤트를 비활성화하고 코드를 실행한 다음 종료 시 이벤트를 다시 활성화하는 것이 가장 좋습니다.
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng1 As Range Set rng1 = Intersect(Target, Range("A1:G25")) If rng1 Is Nothing Then Exit Sub Application.EnableEvents = False 'work with rng1 Application.EnableEvents = True End Sub
언급URL : https://stackoverflow.com/questions/8071931/excel-worksheet-change-event-not-working
반응형
'programing' 카테고리의 다른 글
Xcode 4.4 오류 - 앱 실행을 기다리는 동안 시간 초과됨 (0) | 2023.08.14 |
---|---|
iPhone xib를 iPad xib로 변환하시겠습니까? (0) | 2023.08.09 |
도커 - 이름이 이미 컨테이너에서 사용되고 있습니다. (0) | 2023.08.09 |
Socket.io 을 Spring-boot와 함께 사용할 수 있습니까? (0) | 2023.08.09 |
웅변적인 컬렉션: 각각 vs. (0) | 2023.08.09 |