Ich möchte in einem Visual Basic Programm
die erste leere Zelle A(n) der Spalte A finden,
so nach der Methode:
Nr =1
Testen:
If not emptycell (A(n))
Nr=Nr + 1
Goto Testen
End If
MsgBox ("Nr")
Wie lautet der Code korrekt?
Gruß Schwipp
Public Sub Erste_freie_Zelle()
Dim loLetzte As Long
With Worksheets("Tabelle1") 'Blattname anpassen
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
MsgBox "Die erste freie Zeile ist " & loLetzte
End With
End Sub
Gruß WernerPublic Sub Erste_freie_Zelle()
Dim loLetzte As Long
loLetzte = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
MsgBox "Die erste freie Zeile ist " & loLetzte
End Sub
Beachte hierbei, dass vor dem Cells und vor dem Rows.Count dann keine Punkte sein dürfen.Option Explicit
Sub Schwipp()
Dim nR&
If Application.WorksheetFunction.CountBlank(Columns(1)) = 0 Then
MsgBox "keine leere Zelle gefunden": Exit Sub 'Spalte(1)
End If
nR = 1
Testen:
If Not IsEmpty(Cells(nR, 1)) Then
nR = nR + 1
GoTo Testen
End If
MsgBox "Nr: " & nR
End Sub
Sub ML()
Dim FreeCell&
If Application.WorksheetFunction.CountBlank(Columns(1)) = 0 Then
MsgBox "keine leere Zelle gefunden": Exit Sub
End If
FreeCell = 1
Do While Cells(FreeCell, 1) ""
FreeCell = FreeCell + 1
Loop
MsgBox "Die erste freie Zeile ist " & FreeCell
End Sub
Gruß MatthiasMsgBox Cells(1, 1).CurrentRegion.Rows.Count + 1
MsgBox 1 + WorksheetFunction.CountA(Columns(1))
Um die erste leere Zelle in der Spalte A mithilfe von Excel VBA zu finden, kannst du den folgenden Code verwenden. Dieser Code ermittelt die erste leere Zelle, indem er von unten nach oben in der Spalte sucht:
Public Sub Erste_freie_Zelle()
Dim loLetzte As Long
With Worksheets("Tabelle1") ' Blattname anpassen
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
MsgBox "Die erste freie Zeile ist " & loLetzte
End With
End Sub
Falls du nur ein Blatt in deiner Excel-Datei hast, kannst du den Code vereinfachen, indem du die With
-Anweisung weglässt:
Public Sub Erste_freie_Zelle()
Dim loLetzte As Long
loLetzte = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
MsgBox "Die erste freie Zeile ist " & loLetzte
End Sub
Fehler: "Typenübereinstimmung"
Option Explicit
, um sicherzustellen, dass alle Variablen deklariert werden.Fehler: Falscher Blattname
With
-Anweisung und passe ihn gegebenenfalls an.Fehler: Keine leere Zelle gefunden
CountBlank
, um zu überprüfen, ob es leere Zellen gibt:If Application.WorksheetFunction.CountBlank(Columns(1)) = 0 Then
MsgBox "Keine leere Zelle gefunden": Exit Sub
End If
Es gibt verschiedene Ansätze, um die erste leere Zelle in einer Spalte zu finden:
Mit einer Schleife:
Sub ErsteLeereZelle()
Dim nR As Long
nR = 1
Do While Not IsEmpty(Cells(nR, 1))
nR = nR + 1
Loop
MsgBox "Die erste leere Zelle ist in Zeile " & nR
End Sub
Mit CurrentRegion
:
Wenn du sicher bist, dass deine Liste zusammenhängend ist:
MsgBox Cells(1, 1).CurrentRegion.Rows.Count + 1
Hier sind einige praktische Anwendungsbeispiele für das Finden der ersten leeren Zelle:
Beispiel 1: Du hast eine Liste von Verkäufen in Spalte A und möchtest die nächste freie Zeile finden, um neue Verkäufe hinzuzufügen.
Beispiel 2: Du verwendest eine VBA-Routine, um Daten aus einer Datenbank in die nächste freie Zeile in Excel zu importieren.
Option Explicit
am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden und den Code leichter verständlich zu machen.1. Wie finde ich die letzte nicht leere Zelle in einer Spalte? Du kannst den folgenden Code verwenden:
Dim loLetzte As Long
loLetzte = Cells(Rows.Count, "A").End(xlUp).Row
MsgBox "Die letzte nicht leere Zelle ist in Zeile " & loLetzte
2. Was ist der Unterschied zwischen End(xlUp)
und End(xlDown)
?
End(xlUp)
sucht nach der letzten nicht leeren Zelle von unten nach oben, während End(xlDown)
von oben nach unten sucht.
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