2016-10-06 3 views
0

Worksheet_Change 매크로를 설정하면 셀 K4의 내용이 "이벤트 기반"이 아닌 경우 J5 : K7의 내용이 지워집니다. 이것은 잘 작동합니다. 아래 코드. 세포 J12의 내용이 지워 경우Excel VBA WorkSheet_Change 지우기 내용이 비어있는 경우

Private Sub Worksheet_Change(ByVal Target As Range) 

    Dim MRange As Range 

    Set MRange = Range("K4") 
    If MRange <> "Event Based" Then 
     If Union(Target, MRange).Address = MRange.Address Then 
      Application.EnableEvents = False 
      Range("J5:K7").Select 
      Selection.ClearContents 
      Application.EnableEvents = True 
     End If 
    End If 

End Sub 

는 그러나 나는 Worksheet_Change 이벤트를합니다. 그러나 아래 매크로는 작동하지 않습니다. 셀 값이 비어있는 것과 관련이 있다는 것을 알고 있지만 어떤 도움을 주시면 감사하겠습니다.

Dim NRange As Range 

    Set NRange = Range("J12") 
    If NRange = "" Then 
     If Union(Target, NRange).Address = NRange.Address Then 
      Application.EnableEvents = False 
      Range("J5:K7").Select 
      Selection.ClearContents 
      Application.EnableEvents = True 

     End If 
    End If 

End Sub 
+0

내 대답은 아래 내용을 참조하십시오. 이것이 의미하는 바가 무엇인지 알 수 있습니다. –

답변

1

셀 J12 값이 셀의 값이 "J5"그럼 범위의 내용을 클리어 "변경되었는지 검사 아래 코드 : K7을".

Private Sub Worksheet_Change(ByVal Target As Range) 

    Dim IntersectRange    As Range 
    Dim NRange      As Range 

    Set NRange = Range("J12") 
    Set IntersectRange = Intersect(Target, NRange) 

    ' continue running this code only if Cell J12 has changed 
    If Not IntersectRange Is Nothing Then 

     If Target.Value = "" Then 
      Application.EnableEvents = False 
      Range("J5:K7").ClearContents 
      Application.EnableEvents = True 
     End If 

    End If 

End Sub 
+0

Shai - 나는 그런 느낌이었습니다. 거의 효과가있었습니다. 도망 갔을 때 Target.Value = ""에서 오류가 발생했습니다. NRange.Value = ""로 변경되어 완벽하게 작동했습니다. 당신의 도움 없이는 거기에 갈 수 없었습니다. –

관련 문제