【Excel VBA】取得使用儲存格最後一欄欄數~詳細說明

VBA取得最後一欄欄數

當我們使用VBA迴圈時,常會以第一欄執行至最後一欄,那要怎麼使用VBA取得使用儲存格中最後一欄的欄數呢?以下列出幾種主要的方法。

方法一 移到右方取欄數

※輸入以下指令※

Sub 取得最後一欄()
欄 = Range(“A1”).End(xlToRight).Column
MsgBox 欄
End Sub

點選「開發人員」-「巨集」或按下「Ctrl」+「F8」快捷鍵,並「執行」巨集。

執行後則從「A1儲存格移動到使用儲存格最右方所在的欄數,則為最後一欄的欄數(6)。

但此方法的缺點是當中間夾帶空白儲存格時,則會計算到空白儲存格之前的欄數(4)。

方法二 移到左方取欄數

※輸入以下指令※

Sub 取得最後一欄()
欄 = Range(“IV1”).End(xlToLeft).Column
MsgBox 欄
End Sub

執行後則從「IV1儲存格移動到左方有資料所在的欄數,則為最後一欄的欄數(6)。

※為什麼是IV1儲存格呢?因版本2007以前最多僅到256欄,但目前已到16384欄,所以也可以改成XFD1儲存格,但通常不會用到這麼多欄。

而此方法若中間夾帶空白儲存格時仍然會計算到最右方有資料之欄數(6)。

方法三 取最大欄數移左方

※輸入以下指令※

Sub 取得最後一欄()
欄 = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox 欄
End Sub

與方法二差異在方法三是計算出最大欄數後,再移動到左方有資料所在的欄數,則為最後一欄的欄數(6)。

方法四 計算區域儲存格的欄數

※輸入以下指令※

Sub 取得最後一欄()
欄 = Range(“A1”).CurrentRegion.Columns.Count
MsgBox 欄
End Sub

執行後則從計算目前區域儲存格總共的欄數總欄數(6)。

方法五 列數加一直到空白列

※輸入以下指令※

Sub 取得最後一欄()
欄 = 1
Do While Cells(1, 欄) <> “”
欄 = 欄 + 1
Loop
MsgBox 欄 – 1
End Sub

執行後則當資料非空值時將欄數+1直到最後一欄時會再+1需要再-1則為最後一欄(6)。

簡化操作版

VBA取得最後一列列數

其他文章分享

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *