我正在尝试找到包含给定工作表中数据的第一列,我已经看到了在线搜索的各种公式,但我没有得到正确的值。我已经尝试过这个网站上的公式,但它没有用。
http://www.vbaexpress.com/kb/getarticle.php?kb_id=418
有什么想法吗?
答案 0 :(得分:0)
activesheet.usedrange.columns(1).column
这将为您提供我理解您要求的列号
答案 1 :(得分:0)
使用Range类的End属性;这类似于从活动单元格按Ctrl +箭头键时。我个人认为UsedRange有点不可靠,因为您可能使用了与您尝试查找的范围无关的单元格(例如,您在A到D列中有一个表,在E中有一些计算)。
Dim firstColumn as Long
If Range("A1") <> "" then
firstColumn = 1
Else
firstColumn = Range("A1").End(xlToRight).column
End If
这假设您可能在A1中有数据。如果没有,那么首先使用列而不是行,在这种情况下使用Cells而不是Range:
Dim firstRow, firstColumn as integer
If Range("A1") <> "" then
firstColumn = 1
Else
firstRow = range("A1").End(xlDown).row
if Range("A" & firstRow <> "" then
firstColumn = 1
else
firstColumn = Cells(firstRow, 1).End(xlToRight).Column
End If
End If