Werte mit VBA zwischen Tabellen mit einer Until Schleife kopieren
Schritt-für-Schritt-Anleitung
-
Öffne dein Excel-Dokument und wechsle zu dem Blatt, in dem deine Ausgangsdaten (z.B. "01 Jan-Jun") stehen.
-
Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu:
- Klicke auf "Einfügen" > "Modul".
-
Kopiere den folgenden VBA-Code in das Modul:
Sub WerteKopieren()
Dim i As Long
Dim ApSe As Worksheet: Set ApSe = Sheets("April-Sep")
Dim pv1 As Worksheet: Set pv1 = Sheets("01 Jan-Jun")
Dim t As Double
t = 43191 ' Ersetze dies mit dem entsprechenden Datum
i = 1
Do Until Cells(i, 1).Value = ""
If Cells(i, 1).Value = t Then
ApSe.Cells(i, 2).Value = Cells(i, 2).Value ' Wert kopieren
End If
i = i + 1
Loop
End Sub
-
Passe die Variable t
an, um das gewünschte Datum und die Uhrzeit zu setzen.
-
Führe das Makro aus, indem du auf F5
drückst oder das Makro über das Excel-Menü startest.
Häufige Fehler und Lösungen
Alternative Methoden
Falls du keine VBA-Programmierung nutzen möchtest, kannst du auch die SVERWEIS-Funktion in Excel verwenden:
=WENNFEHLER(SVERWEIS(A2; '01 Jan-Jun'!$A:$B; 2; FALSCH); "")
Diese Formel sucht den Wert in A2 der aktuellen Tabelle und gibt den entsprechenden Wert aus der Tabelle "01 Jan-Jun" zurück. Dies ist eine einfache Methode, um Daten zu übertragen, ohne VBA zu verwenden.
Praktische Beispiele
Hier ist ein Beispiel für eine VBA Until Schleife:
Sub BeispielUntilLoop()
Dim i As Long
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("01 Jan-Jun")
i = 1
Do Until ws.Cells(i, 1).Value = ""
If ws.Cells(i, 1).Value = "01.04.2018 00:00" Then
Debug.Print ws.Cells(i, 2).Value ' Gibt den Wert in der Konsole aus
End If
i = i + 1
Loop
End Sub
Dieses Beispiel zeigt, wie du die Werte für ein bestimmtes Datum aus einer Tabelle extrahierst.
Tipps für Profis
- Nutze die
Option Explicit
Anweisung am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
- Verwende Fehlerbehandlungsroutinen, um mit unvorhergesehenen Fehlern umzugehen.
- Teste dein Makro immer mit kleinen Datenmengen, bevor du es auf größere Tabellen anwendest.
FAQ: Häufige Fragen
1. Was ist eine Until Schleife in VBA?
Eine Until Schleife in VBA führt einen Block von Code aus, bis eine bestimmte Bedingung erfüllt ist. Sie wird häufig verwendet, um durch Daten zu iterieren.
2. Wie kann ich sicherstellen, dass mein Makro nicht abstürzt?
Stelle sicher, dass alle Schleifenbedingungen korrekt sind und verwende die Fehlerbehandlung, um unerwartete Fehler zu managen.
3. Gibt es Alternativen zu VBA für das Kopieren von Werten in Excel?
Ja, du kannst Funktionen wie SVERWEIS oder INDEX und VERGLEICH verwenden, um Werte ohne VBA zu kopieren.