在 vba 中计算列数
本文将讨论在 excel 中使用 vba 轻松计算包含数据的列的两种方法。
在 vba 中计算列数
当我们有一个包含几列的小数据表时,我们可以很容易地统计它们,但是对于一个大数据表来说,要统计所有列而没有任何错误是相当困难的。除此之外,某些列可能包含数据,而某些列可能完全空白。
因此,在大数据表的情况下计算所有列的数据是非常困难的。现在,让我们创建一个包含一些示例数据的工作表。
我们可以在下面的数据表中看到三列。为了控制单个 excel 工作表中使用的列数,我们将使用 vba 代码。
首先,我们通过按 alt f11 键打开 vba 编辑器。之后,从 insert > module
创建一个新模块。
然后,创建一个新的 sub,usedcolumns()
。在我们的新 sub 中,我们将使用 with
循环使用 usedrange
方法获取已使用的范围。
之后,我们使用 columns
的 count 方法来输出使用的列数。
示例代码:
# vba
sub usedcolumns()
with sheet1.usedrange
msgbox "the used columns are: "& .columns.count
end with
end sub
保存宏并通过按f5或单击运行来运行它。macro
对话框将如下所示。
输出:
在 vba 中计算范围内的列
以下 vba 代码计算给定范围内具有数据的所有列。
让我们创建一个新的子 columnsinrange()
。在这个 sub 中,我们将使用 range 函数来选择和计算该范围内的列数。
示例代码:
# vba
sub columnsinrange()
dim newrange as worksheet
set newrange = worksheets("sheet1")
msgbox "the used columns are: " & newrange.range("a15:d15").columns.count
end sub
输出:
在 vba 中使用 range().end
方法
我们可以使用 range().end
方法来获取该范围内使用的最后一列。
创建一个新的 sub,findlastcolumn()
,在该 sub 内,我们将使用 range 的 end
方法来查找工作表右侧使用的最后一列。
# vba
sub findlastcolumn()
dim newrange as integer
newrange = range("a2").end(xltoright).column
msgbox newrange
end sub
输出:
我们在弹出的对话框中获取最后一列的编号,如上图所示。
在 vba 中使用 cells.find()
方法
我们还可以使用 range.find
方法使用 vba 代码从工作表中获取最后使用的列。
检查以下代码。在 lastcolumnbyfind()
子程序中,我们使用 cells.find()
方法来查找最后使用的列。
示例代码:
# vba
sub lastcolumnbyfind()
dim newrange as long
newrange = cells.find(what:="*", _
after:=range("a1"), _
lookat:=xlpart, _
lookin:=xlformulas, _
searchorder:=xlbycolumns, _
searchdirection:=xlprevious, _
matchcase:=false).column
msgbox "last used column number by find method: " & newrange
end sub
输出:
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
发布时间:2023/03/19 浏览次数:627 分类:vba
-
本教程演示了如何在 vba 中使用具有多个条件的自动过滤器。
发布时间:2023/03/19 浏览次数:383 分类:vba
-
本教程演示如何在 vba 中设置工作表。