1
lastRowIndex = .Cells(.Rows.Count, "A").End(xlUp).row
找到最後一行的數據。
如何找到第一行?我發現一些代碼activesheet.usedrange
,但它不適用於我,因爲對於b列,第一個數據從第二行開始,但在A列從第四行開始。我需要找到我的號碼4
lastRowIndex = .Cells(.Rows.Count, "A").End(xlUp).row
找到最後一行的數據。
如何找到第一行?我發現一些代碼activesheet.usedrange
,但它不適用於我,因爲對於b列,第一個數據從第二行開始,但在A列從第四行開始。我需要找到我的號碼4
的替代版本,而不使用CountA()
功能如下:
Function firstrow2(col As Range) As Long
Dim f As Range
Set f = col.Find("*", after:=col.Cells(col.Parent.Rows.Count)) '<--| look for any value in given column from its row 1 (included) downwards
If Not f Is Nothing Then firstrow2 = f.Row '<--| if found then return its row index
End Function
這是返回0
如果傳入列
你應該使它更健壯一點,並處理錯誤通過範圍(不是整列或更寬,然後列),您可以使用以下內容:
Function FirstRow(col As Range) As Long
Dim f As Range
With col.Columns(1).EntireColumn
Set f = .Find("*", after:=.Cells(.Rows.Count)) '<--| look for any value from row 1 (included)
End With
If Not f Is Nothing Then FirstRow4 = f.Row '<--| if found then return its row index
End Function
Dim col As Range
Set col = Columns(10)
If Application.CountA(col) > 0 Then
Debug.Print "first data: " & col.Find("*", after:=col.Cells(Rows.Count)).Row
Else
Debug.Print "no data"
End If
'firstRowIndex = .Cells(1,「A」).End(xlDown).row'並處理可能性行1包含數據 –