有没有办法让程序在电子表格中找到下一个可用的行?

时间:2011-09-20 18:32:55

标签: excel vba

如何创建一个通过电子表格排序的程序找到最后一行数据,然后在下一个可用行中以新文本进行复制/粘贴?

2 个答案:

答案 0 :(得分:0)

此UDF在第一个参数处接收工作表名称,并在列字母中查找一行,这将返回下一行可用。

Function GetLin(Sht As String, Col As String)
'officevb.com
Dim UltLinPlan As Long

'Get a last row in sheet
UltLinPlan = Sheets(Sht).Range("A65536").End(xlDown).Row

'Return this number
GetLin = Sheets(Sht).Range(Col & UltLinPlan).End(xlUp).Offset(1, 0).Row

End Function

使用非常简单

dim x as long

x=GetLin("Sheet1","A")

此示例返回Sheet1

中A列的下一行

[]的

答案 1 :(得分:0)

如果您在Column A之后的Row 65536中有数据,那么Bruno的方法将无法在更高版本的Excel中使用。此外,如果您在工作表的末尾有数据(无论版本如何),如果您执行xlUp,那么您将跳过真正的结束。

这种方法依赖于流行的方法,快速检查最后一行。

Sub getlin2()

Dim lin As Long
Dim Sht As String
Dim Col As String

Col = "A"
Sht = "Sheet1"

lin = Sheets(Sht).Rows.Count
If Sheets(Sht).Range(Col & lin).Value = vbNullString Then
    lin = Sheets(Sht).Range(Col & Sheets(Sht).Rows.Count).End(xlUp).Offset(1, 0).Row
End If

MsgBox lin

End Sub