VBA取得最後一列列數
當我們使用VBA迴圈時,常會以第一列執行至最後一列,那要怎麼使用VBA取得使用儲存格中最後一列的列數呢?以下列出幾種主要的方法。
方法一 移到下方取列數
※輸入以下指令※
Sub 取得最後一列()
列 = Range(“A1”).End(xlDown).Row
MsgBox 列
End Sub
點選「開發人員」-「巨集」或按下「Ctrl」+「F8」快捷鍵,並「執行」巨集。
執行後則從「A1儲存格」移動到使用儲存格最下方所在的列數,則為最後一列的列數(15)。
但此方法的缺點是當中間夾帶空白儲存格時,則會計算到空白儲存格之前的列數(10)。
方法二 移到上方取列數
※輸入以下指令※
Sub 取得最後一列()
列 = Range(“A65536”).End(xlUp).Row
MsgBox 列
End Sub
執行後則從「A65536儲存格」移動到上方有資料所在的列數,則為最後一列的列數(15)。
※為什麼是A65536儲存格呢?因版本2007以前最多僅到65536列,但目前已到1048576列,所以也可以改成A1048576儲存格,但通常不會用到這麼多列。
而此方法若中間夾帶空白儲存格時,仍然會計算到最下方有資料之列數(15)。
方法三 取最大列數移上方
※輸入以下指令※
Sub 取得最後一列()
列 = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox 列
End Sub
與方法二差異在方法三是計算出最大列數後,再移動到上方有資料所在的列數,則為最後一列的列數(15)。
方法四 計算區域儲存格的列數
※輸入以下指令※
Sub 取得最後一列()
列 = Range(“A1”).CurrentRegion.Rows.Count
MsgBox 列
End Sub
執行後則從計算目前區域儲存格總共的列數,總列數(15)。
方法五 列數加一直到空白列
※輸入以下指令※
Sub 取得最後一列()
列 = 1
Do While Cells(列, 1) <> “”
列 = 列 + 1
Loop
MsgBox 列 – 1
End Sub
執行後則當資料非空值時將列數+1,直到最後一列時會再+1,需要再-1則為最後一列(15)。