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.