Prüfen, bis zu welcher Spalte und welcher Zeile etwas eingetragen ist

27/07/2009 - 10:42 von Will Milbo | Report spam
Hallo!

Tut mir leid, dass ich hier poste, ich habe keine Excel-VBA newsgroup
gefunden...

Ich möchte gerne alle Zellen in einem Excel-Arbeitsblatt auf die
Existenz des @-Zeichens prüfen.
Mein derzeitiger Code ist aber furchtbar, weil ich JEDE Zelle
durchlaufen muss, um den Text darin zu prüfen.
Ich weiß nàmlich nicht, wie ich herausfinden kann, bis zu welcher Spalte
und welcher Zeile überhaupt etwas eingetragen ist.

Gibt es dafür eine Möglichkeit?

Mein derzeitiger Code ist:

Dim xl As New Excel.Application
Dim xlsheet As Excel.Worksheet
Dim xlwbook As Excel.Workbook

Set xlwbook = xl.Workbooks.Open(uPath)

Dim lSheets&
lSheets = xlwbook.Sheets.Count

Dim s$

Dim l&
For l = 1 To lSheets

Set xlsheet = xlwbook.Sheets.Item(l)

Dim lRows&
lRows = xlsheet.Rows.Count

Dim lCols&
lCols = xlsheet.Columns.Count

Dim r&
Dim c&

'256 * 62000irgendwas Zellen... das dauert verdammt lang...

For r = 1 To lRows
For c = 1 To lCols

If Len(xlsheet.Cells(r, c)) > 0 Then
s = s & "|" & xlsheet.Cells(r, c)
End If
DoEvents
Next c
Next r

Next l

xl.ActiveWorkbook.Close False, uPath
xl.Quit

Set xlwbook = Nothing
Set xl = Nothing

Es wàre sehr nett, wenn mir hier jemand weiterhelfen könnte.
Dankeschön!

Will
 

Lesen sie die antworten

#1 Hajo
27/07/2009 - 10:56 | Warnen spam
Hallo Will

For Each RaZelle In Worksheets("Tabelle1").UsedRange
Wobei RaZelle as Range definiert ist.

Gruß Hajo
MVP für Microsoft Excel
Betriebssystem Vista Ultimate SP2 und Excel Version2007 SP2
http://Hajo-Excel.de/



"Will Milbo" wrote:

Hallo!

Tut mir leid, dass ich hier poste, ich habe keine Excel-VBA newsgroup
gefunden...

Ich möchte gerne alle Zellen in einem Excel-Arbeitsblatt auf die
Existenz des @-Zeichens prüfen.
Mein derzeitiger Code ist aber furchtbar, weil ich JEDE Zelle
durchlaufen muss, um den Text darin zu prüfen.
Ich weiß nàmlich nicht, wie ich herausfinden kann, bis zu welcher Spalte
und welcher Zeile überhaupt etwas eingetragen ist.

Gibt es dafür eine Möglichkeit?

Mein derzeitiger Code ist:

Dim xl As New Excel.Application
Dim xlsheet As Excel.Worksheet
Dim xlwbook As Excel.Workbook

Set xlwbook = xl.Workbooks.Open(uPath)

Dim lSheets&
lSheets = xlwbook.Sheets.Count

Dim s$

Dim l&
For l = 1 To lSheets

Set xlsheet = xlwbook.Sheets.Item(l)

Dim lRows&
lRows = xlsheet.Rows.Count

Dim lCols&
lCols = xlsheet.Columns.Count

Dim r&
Dim c&

'256 * 62000irgendwas Zellen... das dauert verdammt lang...

For r = 1 To lRows
For c = 1 To lCols

If Len(xlsheet.Cells(r, c)) > 0 Then
s = s & "|" & xlsheet.Cells(r, c)
End If
DoEvents
Next c
Next r

Next l

xl.ActiveWorkbook.Close False, uPath
xl.Quit

Set xlwbook = Nothing
Set xl = Nothing

Es wàre sehr nett, wenn mir hier jemand weiterhelfen könnte.
Dankeschön!

Will

Ähnliche fragen