用VBA得到EXCEL表格中的行數和列數

用VBA得到EXCEL表格中的行數和列數

  每種方法中上面的是Excel的行數,下面的是Excel的列數。
方法1:
  ActiveSheet.UsedRange.Rows.Count   
  ActiveSheet.UsedRange.Columns.Count
       缺點:有時可能會比實際數大一些,原因是如果你把最後幾行(列)數據清除後(非整行或整列刪除),用這個命令仍返回未清除前的值。就是說現在雖然是空的,但是你曾經用過也算你的。

方法2:
  ActiveSheet.Range("A65535").End(xlUp).Row
  ActiveSheet.Range("IV1").End(xlToLeft).Column
  可以簡寫爲:
  ActiveSheet.[A65536].End(xlUp).Row
  ActiveSheet.[IV1].End(xlToLeft).Column
      缺點:只能計算出一列(行)的最後一個單元格所在的行(列)數。本例是隻返回A列最後一個單元格所佔的行數。

方法3:
  ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
  ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
  缺點:在工作表進行對刪除或清除操作時也會變得比實際情況大。

方法4:
  ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
  ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
  缺點:在工作表進行對刪除或清除操作時也會變得比實際情況大。

方法5:
  Application.CountA(ActiveSheet.Range("A:A"))
  Application.CountA(ActiveSheet.Range("1:1"))
  只能統計一列(行)的實際使用情況,得到的不一定是最後一行(列)的位置。方法2的數值比此方法大時,說明在A列的數據間有空白未填寫的單元格

方法6:
  ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
  效果同方法2

以上方法中比較常用的是方法1和方法2。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章