首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用VBA查找Excel表格中非空列的个数

用VBA查找Excel表格中非空列的个数
EN

Stack Overflow用户
提问于 2011-08-01 18:48:06
回答 3查看 230.3K关注 0票数 26

如何使用VBA查找Excel工作表中的已用列数?

Dim lastRow As Long
lastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
MsgBox lastRow

使用上面的VBA,我能够找到行数。但是我如何在给定的excel文件中找到列数呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-01 19:42:36

您的示例代码获取当前列中最后一个非空单元格的行号,可以按如下方式重写:

Dim lastRow As Long
lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
MsgBox lastRow

然后很容易看出,用于获取当前行中最后一个非空单元格的列号的等效代码为:

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastColumn

这也可能对你有用:

With Sheet1.UsedRange
    MsgBox .Rows.Count & " rows and " & .Columns.Count & " columns"
End With

但请注意,如果A列和/或第1行为空,则这将不会产生与上面其他示例相同的结果。有关更多信息,请阅读UsedRange属性。

票数 48
EN

Stack Overflow用户

发布于 2013-12-20 09:58:06

您可能每次都在columns.count之前的某个地方忘记了一个sheet1,或者它将计算activesheet列而不是sheet1列。

另外,它不应该是xltoleft而不是xltoright吗?(好的,这里很晚了,但我想我知道我的右边和左边)我检查过了,你必须写xltoleft。

lastColumn = Sheet1.Cells(1, sheet1.Columns.Count).End(xlToleft).Column
票数 2
EN

Stack Overflow用户

发布于 2017-08-04 08:48:02

这就是答案:

numCols = objSheet.UsedRange.Columns.count

Documentation of the UsedRange property

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6897347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档