2016-07-15 6 views

Antwort

0

Ich verwende CountA, um festzustellen, ob die gesamte Zeile leer ist.

Function FirstEmtpyRow(startRow As Long) As Long 

     Do 
      startRow = startRow + 1 
      If startRow = rpws.Count Then Exit Function 

     Loop Until WorksheetFunction.CountA(Rows(startRow)) = 0 

     FirstEmtpyRow = startRow 

    End Function 
1
Dim startRow As Long 
Dim i As Long 
Dim lastRow As Long 
Dim sh As Worksheet 


startRow = 2 'Set first row to check 
Set sh = ThisWorkbook.Worksheets("Sheet1") 

lastRow = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row 

For i = startRow To lastRow 
    If sh.Cells(i, 1) = "" Then 
     MsgBox "First empty row: " & i 
     Exit For 
    End If 
Next i 

sein Haben Sie so etwas wie dies versucht?

Hinweis: Dies wird nicht angezeigt, wenn die letzte Zeile leer ist.

2

So ähnlich?

function FindFirstEmpty(i as long) 

while cells(i,1).value <> "" 
    i = i + 1 
wend 

FindFirstEmpty = i 

End function 

Hängt davon ab, wie Sie die Zeile erhalten, von der aus Sie beginnen sollen.

0

können Sie verwenden .End (xlDown), aber man muss vorsichtig sein, dass die unmittelbar nächste Zelle nicht leer ist oder man könnte diesen überspringen.

dim rw as long, nrw as long 
rw = 6 
with worksheets("sheet1") 
    with .cells(rw, "A") 
     if IsEmpty(.Offset(1, 0)) then 
      nrw = rw + 1 
     else 
      nrw = .end(xldown).offset(1, 0).row 
     end if 
    end with 
end with 

debug.print nrw 
Verwandte Themen