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

问题描述 投票:0回答:3

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

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

有什么想法吗?

vba excel
3个回答
1
投票

使用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 中有数据。如果没有,则首先对列而不是行执行相同的操作,在这种情况下使用单元格而不是范围:

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

0
投票

嗯,这个很简单:

activesheet.usedrange.columns(1).column

这将为您提供我了解您要求的列号


0
投票

我刚刚读过这篇文章。我的解决方案如下

Sub test()
    Set MyRange = Range("C3:d12")
    sRow = Application.Index(MyRange, 0, 1).Row
    eRow = Application.Index(MyRange, 0, 1).Count + sRow - 1
    Debug.Print sRow, eRow
End Sub

© www.soinside.com 2019 - 2024. All rights reserved.