2016-10-06 23 views
0

セルマクロを設定しているため、セルK4の内容が「イベントベース」に等しくない場合、J5:K7の内容はクリアされます。これは素晴らしいです。以下のコード。Excel VBA WorkSheet_Change Clear Contents空白の場合

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 

しかし、セルJ12の内容がクリアされている場合、私は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 = ""に変更し、完全に機能しました。私はあなたの助けなしにそこに行けなかった。 –

関連する問題