Ich versuche gerade, ein VBA-Modul aufzurufen, wenn der Benutzer eine meiner Formeln auf einem Blatt überschreibt. Ich denke, dass das Worksheet Change Event ausgelöst wird, aber dann erhalte ich den Laufzeitfehler 424 ("Objekt erforderlich"), wenn ich das Modul ausführe. Ich bin mir nicht sicher, was ich falsch mache?Laufzeitfehler 424-Objekt erforderlich, wenn versucht wird, Code auszulösen
Hier ist mein Arbeitsblatt ändern Ereigniscode:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Award_Amount")) Is Nothing Then
Call Award_Amount_Entered
End If
If Not Intersect(Target, Range("Award_two_Amount")) Is Nothing Then
Call Award_two_Amount_Entered
End If
End Sub
Hier ist der Code in das Modul Ich rufe:
Sub Award_Amount_Entered()
'If the user has overwritten the formula that was just in the cell
If ActiveCell.HasFormula = False Then
Applicaton.Intersect((Rows(ActiveCell.Row)), Range("AA:AA")).Select
....run some more code
End If
End Sub
Wenn das Debuggen, vba unterstreicht die letzte Zeile des obigen Codes: Anwendung .Intersect ((Zeilen (ActiveCell.Row)), Bereich ("AA: AA")) Wählen Sie
Ich bin mir sicher, dass dies früher funktioniert! Mache ich etwas falsch?
Vielen Dank im Voraus, dass Sie sich die Zeit genommen haben, dies zu lesen!
Tina
Versuchen vollständig die Reihen Eigenschaft qualifizieren. – Brian
Sie haben Anwendung falsch geschrieben. – Brian
Im Sheet-Code-Modul werden alle Range() - und Cells() -Aufrufe standardmäßig auf das Sheet-Objekt angewendet, aber das gilt nicht für Code in einem regulären Modul. Daher wäre es sinnvoll, dort genauer zu sein. –