wie bitte kann ich per VBA die letzte Zeile einer 'intelligenten' Tabelle ermitteln?
.ListObjects(Tabelle4).?
Ändern geht, will ich aber eigentlich nicht.
Danke für die Hilfe
Gruß der ALteDresdner
dim Tbl as Listobject
set Tbl = activesheet.Listobjects(1)
debug.print Tbl.DatabodyRange.Address
Mit etwas String-Zerlegung kann man daraus die letzte Zeile ableiten.Um die letzte Zeile einer intelligenten Tabelle in Excel mit VBA zu ermitteln, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:
Öffne den VBA-Editor: Drücke ALT + F11
, um den VBA-Editor in Excel zu öffnen.
Erstelle ein neues Modul: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen
> Modul
.
Füge den folgenden Code ein:
Sub LetzteZeileErmitteln()
Dim Tbl As ListObject
Set Tbl = ActiveSheet.ListObjects(1) ' Wähle die erste intelligente Tabelle
Dim letzteZeile As Long
letzteZeile = Tbl.DatabodyRange.Rows.Count + Tbl.HeaderRowRange.Row
Debug.Print "Die letzte Zeile ist: " & letzteZeile
End Sub
Führe das Makro aus: Drücke F5
oder klicke auf Ausführen
, um das Makro zu starten und die letzte Zeile in der Debug-Ausgabe zu sehen.
Fehler: "Objekt nicht gefunden"
Fehler: Falsche Zeilenanzahl
Tbl.HeaderRowRange.Row
korrekt einsetzt, um die Gesamtanzahl der Zeilen zu berechnen.Falls Du eine andere Methode bevorzugst, um die Anzahl der Zeilen einer intelligenten Tabelle zu ermitteln, kannst Du auch die ListObjects
-Eigenschaft direkt verwenden:
Sub AnzahlZeilenErmitteln()
Dim Tbl As ListObject
Set Tbl = ActiveSheet.ListObjects(1)
Dim anzahlZeilen As Long
anzahlZeilen = Tbl.DatabodyRange.Rows.Count
Debug.Print "Anzahl der Zeilen: " & anzahlZeilen
End Sub
Diese Methode gibt Dir die Anzahl der Zeilen in der DatabodyRange
zurück, ohne die Header-Zeile zu berücksichtigen.
Hier sind einige praktische Beispiele, wie Du die DatabodyRange
in verschiedenen Kontexten verwenden kannst:
Anzahl der Zeilen in einer bestimmten Tabelle ermitteln:
Sub AnzahlZeilenBestimmteTabelle()
Dim Tbl As ListObject
Set Tbl = ActiveSheet.ListObjects("DeineTabelle") ' Ersetze "DeineTabelle" durch den Namen deiner Tabelle
Dim anzahlZeilen As Long
anzahlZeilen = Tbl.DatabodyRange.Rows.Count
MsgBox "Die Tabelle hat " & anzahlZeilen & " Zeilen."
End Sub
Letzte Zeile einer Tabelle in einer Variablen speichern:
Sub LetzteZeileSpeichern()
Dim Tbl As ListObject
Set Tbl = ActiveSheet.ListObjects(1)
Dim letzteZeile As Long
letzteZeile = Tbl.DatabodyRange.Rows.Count + Tbl.HeaderRowRange.Row
' Hier kannst Du die letzte Zeile weiterverarbeiten
End Sub
ListObjects
-Eigenschaft, um gezielt auf verschiedene intelligente Tabellen in Deinem Arbeitsblatt zuzugreifen.Debug.Print
-Anweisung, um Deine Ergebnisse während der Entwicklung zu überprüfen, bevor Du sie in einer Benutzeroberfläche anzeigst.DatabodyRange
nur für ListObjects
verfügbar ist, die tatsächlich Daten enthalten.1. Wie kann ich die letzte Zeile einer bestimmten intelligenten Tabelle ermitteln?
Du kannst die Tabelle anhand ihres Namens ansprechen, indem Du ActiveSheet.ListObjects("Tabellenname")
verwendest.
2. Was ist der Unterschied zwischen DatabodyRange
und HeaderRowRange
?
DatabodyRange
bezieht sich auf den Bereich der Daten, während HeaderRowRange
die Kopfzeile der Tabelle darstellt.
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