2010-07-14 24 views
14

我剛開始與「規劃」 VBA在Excel中一些使自動化手動是煩人的東西... ...所以這將probebly聽起來像一個總nooby的問題,雖然我對VBA對象不太熟悉等等。獲取一列裝滿細胞的數量(VBA)

所以我quesstion: 有沒有找出一個列的長度更優雅的方式?我的第一列是一個索引,其數量單調遞增,並以不可預測的點結束。 現在我想知道,這個專欄有多少條。有沒有更好的辦法比迭代通過這一點,並注意一個空的單元格?

格爾茨, Poeschlorn

回答

12

一種方法是:(假設索引列始於A1)

MsgBox Range("A1").End(xlDown).Row 

這是從A1向下尋找第一個無人居住的細胞,並顯示您的序行號。

您可以選擇下一個空單元格:

Range("A1").End(xlDown).Offset(1, 0).Select 

如果你需要一個數據集(包括空格)結束,請嘗試:範圍( 「A:A」)。SpecialCells(xlLastCell).Row

+0

這是更好地做到這一點像下面MrKowz說明。如果由於某種原因存在空行,您可能會錯過很多數據。 – Jon49 2011-10-06 23:40:56

+0

在某些情況下,但是這個問題明確指出了它的填充單元格,並且由於非連續單元格造成的錯誤計數可能同樣很糟糕 – 2011-10-07 08:05:12

3

您還可以使用

Cells.CurrentRegion 

給你表示對當前活動工作表數據的邊界範圍

Msdn在主題上表示

返回表示當前區域的 的Range對象。當前區域 是由空白行和空白列的任意組合 界定的範圍。 只讀。

然後你就可以通過

Cells.CurrentRegion.Columns.Count 

確定列數和列數通過

Cells.CurrentRegion.Rows.Count 
3

你也可以使用:

UsedRange.Rows.Count 
+0

這對我來說非常合適,謝謝。 – DavidGuaita 2015-06-02 08:05:02

15

如果你想找到最後一個特定列中填充的單元格,最好的方法是:

Range("A" & Rows.Count).End(xlUp).Row 

該代碼使用在整列(65536 Excel 2003中,在以後的版本1048576)非常最後一個單元格,然後找到它上面的第一個人口稠密的小區。這有能力忽略數據中的「中斷」並找到真正的最後一行。

2

找到最後填充柱使用以下命令:

lastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column