2016-04-21 5 views
0

aus Ich versuche ein Unterprogramm zu erstellen, das ausgeführt wird, wenn eine Zelle in Spalte 13 geändert wird. Ich habe schon einige Fragen zum Stapelüberlauf gelesen, aber ich habe meine Antwort nicht gefunden. Hier sind einige, die ich gelesen habe:VBA: Wenn die Zelle in einer bestimmten Spalte geändert wird, führen Sie das Unterprogramm

Not activated by a change

Uses intersect. Doesn't address my issue

Might work but I'm not very good with events

Ich habe versucht, es

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 

If Not Intersect (Target, Activesheet.Columns(13)) Is Nothing Then 
    MsgBox "Help Help" 
EndIf 

End Sub 

Dies funktioniert mit dem intersect fuction funktioniert, wenn ich Werte ändern aber wenn es für eine Weile allein gelassen wird, wird es mit "Laufzeitfehler 1004" kommen: Methode 'Schnitt des Objekts' _Global "gescheitert". Irgendwelche Ideen willkommen. Wenn es einen einfacheren Weg gibt, dies zu erreichen, würde ich es gerne wissen. Vielen Dank für Ihre Zeit.

Antwort

1

ALLE Arbeitsblatt zu handhaben, legen Sie diesen in Thisworkbook-Codebereich

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 

If Not Intersect(Target, Sh.Columns(13)) Is Nothing Then 
    MsgBox "Help Help" 
End If 

End Sub 

oder

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 

If Target.Column = 13 Then 
    MsgBox "Help Help" 
End If 

End Sub 

Andernfalls folgende in dem Codebereich des Blattes platzieren (s) Sie wollen „Griff“ nur

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.Column = 13 Then 
    MsgBox "Help Help" 
End If 

End Sub