查找并返回包含数据的第一列 - VBA Excel

时间:2016-10-07 22:49:22

标签: excel vba excel-vba

我正在尝试找到包含给定工作表中数据的第一列,我已经看到了在线搜索的各种公式,但我没有得到正确的值。我已经尝试过这个网站上的公式,但它没有用。

http://www.vbaexpress.com/kb/getarticle.php?kb_id=418

有什么想法吗?

2 个答案:

答案 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