Werte übertragen, wenn ungleich leer in Excel VBA
Schritt-für-Schritt-Anleitung
- Öffne deine Excel-Datei und drücke
ALT + F11
, um den VBA-Editor zu starten.
- Erstelle ein neues Modul, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.
- Füge den folgenden Code ein:
Sub KopiereDaten3()
Dim wsZiel As Worksheet
Dim lngLZeileQuelle As Long
Dim lngLZeileZiel As Long
Dim wsQuelleShip As Worksheet
Set wsQuelleShip = tabShipset 'Ziel_Data_Comp
Set wsZiel = TabWO 'WO Monitor
lngLZeileQuelle = wsQuelleShip.Cells.Find("*", wsQuelleShip.Range("A1"), xlFormulas, xlWhole, _
xlByRows, xlPrevious).Row
wsQuelleShip.Range("A1").AutoFilter Field:=1, Criteria1:=wsZiel.Range("C2").Value
wsZiel.Range("B11:H" & lngLZeileZiel).Clear
Dim i As Long
For i = 2 To lngLZeileQuelle
If Len(wsQuelleShip.Range("W" & i).Value) > 0 Then ' Prüfe, ob W ungleich leer ist
wsZiel.Range("B" & i + 9).Value = wsQuelleShip.Range("E" & i).Value
wsZiel.Range("C" & i + 9).Value = wsQuelleShip.Range("W" & i).Value
End If
Next i
End Sub
- Achte darauf, dass die Quell- und Zielblätter korrekt zugewiesen sind (z.B.
tabShipset
und TabWO
).
- Führe das Makro aus, um die Werte zu übertragen, die in der Spalte W ungleich leer sind.
Häufige Fehler und Lösungen
Alternative Methoden
Eine andere Möglichkeit, Werte zu übertragen, besteht darin, die WENN
-Funktion in Kombination mit VBA
zu verwenden:
If wsQuelleShip.Range("W" & i).Value <> "" Then
' Werte übertragen
End If
Diese Methode verwendet die Ungleich
-Bedingung, um sicherzustellen, dass nur nicht-leere Werte verarbeitet werden.
Praktische Beispiele
Wenn du beispielsweise die Werte aus Spalte E in die Zielspalte B und die Werte aus Spalte W in die Zielspalte C übertragen möchtest, kannst du das folgende Beispiel verwenden:
If wsQuelleShip.Range("W" & i).Value <> "" Then
wsZiel.Range("B" & i + 9).Value = wsQuelleShip.Range("E" & i).Value
wsZiel.Range("C" & i + 9).Value = wsQuelleShip.Range("W" & i).Value
End If
Dieses Beispiel zeigt, wie man in VBA
die wenn ungleich
-Bedingung anwendet, um nur die gewünschten Werte zu übertragen.
Tipps für Profis
-
Verwende die Len
-Funktion, um die Länge von Zellenwerten zu überprüfen. Dies ist besonders nützlich, wenn du sicherstellen möchtest, dass Formeln nicht als leere Zellen gezählt werden.
-
Nutze Debug.Print
, um den Inhalt von Variablen während der Ausführung des Codes zu überprüfen. Dies kann dir helfen, Fehler schneller zu finden.
-
Halte deinen Code modular, indem du Funktionen für wiederkehrende Aufgaben erstellst. So bleibt dein Code übersichtlich und wartungsfreundlich.
FAQ: Häufige Fragen
1. Warum funktioniert mein If
-Befehl nicht?
Es könnte sein, dass die Zelle eine Formel enthält, die als leer betrachtet wird. Verwende Len
, um sicherzustellen, dass die Zelle wirklich leer ist.
2. Wie kann ich sicherstellen, dass ich nur die gewünschten Werte übertrage?
Verwende die WENN
-Bedingung in Kombination mit VBA
, um sicherzustellen, dass du nur ungleiche Werte überträgst.
3. Was mache ich, wenn der Code nicht funktioniert?
Überprüfe die Zuweisungen für die Arbeitsblätter und die Filterkriterien. Debugge den Code mit Debug.Print
, um den Fluss der Daten zu verfolgen.