Hallo...
Kann mir jemand den Befehl für die gesamte Spalte L umschreiben.
Besten Dank
Gruß
Karsten
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("l9") Then
Set rngBereich = Nothing
Set rng = Nothing
Application.Run "a"
End If
ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L:L")) Is Nothing Then
' Hier kannst du den gewünschten Code einfügen
Application.Run "a"
End If
End Sub
Mit diesem Code überprüfst du, ob der Target
-Bereich Teil der gesamten Spalte L ist. Wenn das der Fall ist, wird der Code innerhalb der If
-Bedingung ausgeführt.
Fehler: "Compile error: Variable not defined"
Fehler: "Object variable or With block variable not set"
Set
für Objekte verwendest, die nicht initialisiert sind.Fehler: If Intersect(Target, Range("L:L")) Is Nothing
funktioniert nicht
Worksheet_Change
) platziert ist.Falls du anstelle des Intersect
-Befehls eine andere Methode verwenden möchtest, kannst du auch den Target
direkt auf die Spalte L überprüfen:
If Target.Column = 12 Then
' Dein Code hier
End If
Hier wird die Spalte L (die 12. Spalte) direkt angesprochen, was eine einfache Alternative darstellt.
Hier sind einige Beispiele, die das Verständnis der Target
-Range in VBA erleichtern:
Einfacher Wert setzen:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L:L")) Is Nothing Then
Target.Value = "Änderung erkannt"
End If
End Sub
Bedingte Formatierung:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L:L")) Is Nothing Then
If Target.Value > 100 Then
Target.Interior.Color = RGB(255, 0, 0) ' Rot
End If
End If
End Sub
ByVal Target As Range
, um sicherzustellen, dass du mit dem übergebenen Bereich arbeitest.Application.EnableEvents = False
, um Schleifen zu vermeiden, wenn du Änderungen am Arbeitsblatt vornimmst.1. Was ist der Unterschied zwischen Target
und Range
?
Target
ist der Bereich, der durch die Änderungen im Arbeitsblatt beeinflusst wird, während Range
ein spezifischer Bereich ist, den du definierst.
2. Wie kann ich mehrere Spalten gleichzeitig überwachen?
Du kannst Intersect
mit mehreren Spalten verwenden, z.B. If Not Intersect(Target, Range("L:L,M:M")) Is Nothing Then
.
3. Was passiert, wenn ich Application.Run
verwenden möchte?
Stelle sicher, dass das aufgerufene Makro korrekt definiert ist. Application.Run "a"
führt das Makro mit dem Namen "a" aus.
4. Wie kann ich die Spalte L auf spezifische Werte überprüfen?
Du kannst Bedingungen innerhalb des If
-Blocks hinzufügen, um spezifische Werte zu überprüfen, z.B. If Target.Value = "x" Then
.
5. Welche Excel-Version benötige ich für diesen Code?
Der Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen