Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1704to1708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Addresse leerer Zeilen in Array schreiben/lesen

Addresse leerer Zeilen in Array schreiben/lesen
01.08.2019 16:46:38
Naiv
Ich suche mit dem folgenden Code nach leeren Zeilen (über alle Spalten des Auswahlbereichs _ durchgehend leere Zellen - zu unterscheiden von einfach leeren Zellen die nur über ein/einige Spalten des Auswahlbereichs gehen).

Sub Komplette_Leere_Zeilen_Finden() 'Komplette leere Zeilen finden
Dim Zeile As Long
With ActiveSheet
'.UsedRange ist der verwendete Bereich der Tabelle
'Schleife beim Löschen immer von unten nach oben durchlaufen lassen !
MsgBox "Bereich: " & .UsedRange.Address
For Zeile = .UsedRange.Row + .UsedRange.Rows.Count - 1 To 1 Step -1
'Application.CountA entspricht der Funktion =ANZAHL2()
'und zählt, wieviele gefüllte Zellen der Bereich (hier : die Zeile) enthält
If Application.CountA(.Rows(Zeile)) = False Then MsgBox "Das ist eine leere Zeile: " _
& Rows(Zeile).Address
Next
End With
End Sub

Die Zellen werden prima gefunden und ich kann mir die Addresse der Zellen ausgeben lassen.
Nun möchte ich erreichen, dass die entsprechende Zelle-Addresse der gefundenen leeren Zeile in den Array wie folgt geschrieben wird:
Addresse der 1. gefundenen leeren Zeile -> 1. Array-Eintrag
Adresse der nächsten gefundenen leeren Zeile -> 2. Array-Eintrag
Adresse der n-ten gefunden Zeile -> n Array-Eintrag.
Die Dimension des Array sollte damit immer automatisch auf n gesetzt werden. Danach würde ich die einzelnen Einträge des Arrays weiter verarbeiten wollen um z.B. zwischen zwei gefundenen leeren Zeilen einen Range-Bereich zu definieren.
Bin über jeglichen Hinweis und Erklärung als VBA-Neuling sehr dankbar.
VG

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: leere Zeilen Adressen
01.08.2019 17:46:42
Fennek

Sub T_1()
With ActiveSheet.UsedRange
Debug.Print .Address
For Each r In .Rows
If WorksheetFunction.CountA(r) = 0 Then Ret = Ret & r.Address & "|"
Next r
Debug.Print Ret
Leer = Split(Ret, "|")
End With
End Sub

AW: leere Zeilen Adressen
02.08.2019 18:40:32
Naiv
Hey Fennek,
funktioniert prima, danke dir.
Bloss wird in das Array ein Eintrag zu viel geschrieben, d.h. bei z.B 3 leeren Zeilen, hat das Array 4 Einträge, wobei der 1-3 den Zell-Adressen entsprechen und der letzte nur einem leeren String "". Die Dimension des Arrays habe ich abgerufen und dann auch die einzelnen Einträge schon gecheckt:
 
Debug.Print WorksheetFunction.CountA(Leer)

(Gibt für die Test-Tabelle 4 aus)
Im Anhang mal eine Test-Tabelle dazu.
https://www.herber.de/bbs/user/131237.xls
Woran liegt es und woher kommt dieser Bug. Denn so weiß man garnicht, ob der letzte Eintrag wirklich eine leere Zeile ist oder nicht.
Danke im Voraus
BG
Anzeige
AW: "sei sparsam mit den Zeilen"
03.08.2019 09:37:09
Fennek
ungeprüft

Sub T_1()
With ActiveSheet.UsedRange
Debug.Print .Address
For Each r In .Rows
If WorksheetFunction.CountA(r) = 0 Then Ret = Ret & r.Address & "|"
Next r
Ret = left(Ret, len(Ret)-1)
Leer = Split(Ret, "|")
End With
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige