excelvba获取使用的行列数(VBA取得EXCEL表格中数据最大的行数和列数)

在编写VBA代码的时候,基本上都会有获取某表格数据最大函数或者列数,在VBA中有好几种方式来获取,总结一下,方便初学的孩童们能知道获取的方式。

第一种:

ActiveSheet.UsedRange.Rows.Count

ActiveSheet.UsedRange.Columns.Count

缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列)数据清除后(非整行或整列删除),用这个命令仍返回未清除前的值。就是说现在虽然是空的,但是你曾经用过也算你的。

excelvba获取使用的行列数(VBA取得EXCEL表格中数据最大的行数和列数)(1)

第二种:

ActiveSheet.Range("A65535").End(xlUp).Row

ActiveSheet.Range("IV1").End(xlToLeft).Column

可以简写为:

ActiveSheet.[A65536].End(xlUp).Row

ActiveSheet.[IV1].End(xlToLeft).Column

缺点:只能计算出一列(行)的最后一个单元格所在的行(列)数。本例是只返回A列最后一个单元格所占的行数。

excelvba获取使用的行列数(VBA取得EXCEL表格中数据最大的行数和列数)(2)

第三种:

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column

缺点:在工作表进行对删除或清除操作时也会变得比实际情况大。

excelvba获取使用的行列数(VBA取得EXCEL表格中数据最大的行数和列数)(3)

第四种:

ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column

缺点:在工作表进行对删除或清除操作时也会变得比实际情况大。

excelvba获取使用的行列数(VBA取得EXCEL表格中数据最大的行数和列数)(4)

第五种:

Application.CountA(ActiveSheet.Range("A:A"))

Application.CountA(ActiveSheet.Range("1:1"))

只能统计一列(行)的实际使用情况,得到的不一定是最后一行(列)的位置。方法2的数值比此方法大时,说明在A列的数据间有空白未填写的单元格。

excelvba获取使用的行列数(VBA取得EXCEL表格中数据最大的行数和列数)(5)

第六种:

ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

效果同方法2

excelvba获取使用的行列数(VBA取得EXCEL表格中数据最大的行数和列数)(6)

以上方法中比较常用的是方法1和方法2。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页