在 VBA 中計算列數
本文將討論在 Excel 中使用 VBA 輕鬆計算包含資料的列的兩種方法。
在 VBA 中計算列數
當我們有一個包含幾列的小資料表時,我們可以很容易地統計它們,但是對於一個大資料表來說,要統計所有列而沒有任何錯誤是相當困難的。除此之外,某些列可能包含資料,而某些列可能完全空白。
因此,在大資料表的情況下計算所有列的資料是非常困難的。現在,讓我們建立一個包含一些示例資料的工作表。
我們可以在下面的資料表中看到三列。為了控制單個 Excel 工作表中使用的列數,我們將使用 VBA 程式碼。
首先,我們通過按 ALT + F11 鍵開啟 VBA 編輯器。之後,從 Insert > Module
建立一個新模組。
然後,建立一個新的 sub,usedColumns()
。在我們的新 sub 中,我們將使用 with
迴圈使用 UsedRange
方法獲取已使用的範圍。
之後,我們使用 columns
的 count 方法來輸出使用的列數。
示例程式碼:
# VBA
Sub usedColumns()
With Sheet1.UsedRange
MsgBox "The Used Columns are: "& .Columns.Count
End With
End Sub
儲存巨集並通過按F5或單擊執行來執行它。Macro
對話方塊將如下所示。
輸出:
在 VBA 中計算範圍內的列
以下 VBA 程式碼計算給定範圍內具有資料的所有列。
讓我們建立一個新的子 ColumnsInRange()
。在這個 sub 中,我們將使用 range 函式來選擇和計算該範圍內的列數。
示例程式碼:
# VBA
Sub ColumnsInRange()
Dim newRange As Worksheet
Set newRange = Worksheets("Sheet1")
MsgBox "The Used Columns are: " & newRange.Range("A15:D15").Columns.Count
End Sub
輸出:
在 VBA 中使用 Range().End
方法
我們可以使用 Range().End
方法來獲取該範圍內使用的最後一列。
建立一個新的 sub,findLastColumn()
,在該 sub 內,我們將使用 range 的 End
方法來查詢工作表右側使用的最後一列。
# VBA
Sub findLastColumn()
Dim newRange As Integer
newRange = Range("A2").End(xlToRight).Column
MsgBox newRange
End Sub
輸出:
我們在彈出的對話方塊中獲取最後一列的編號,如上圖所示。
在 VBA 中使用 Cells.Find()
方法
我們還可以使用 Range.Find
方法使用 VBA 程式碼從工作表中獲取最後使用的列。
檢查以下程式碼。在 LastColumnByFind()
子程式中,我們使用 Cells.Find()
方法來查詢最後使用的列。
示例程式碼:
# VBA
Sub LastColumnByFind()
Dim newRange As Long
newRange = Cells.Find(What:="*", _
After:=Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Column
MsgBox "Last Used Column Number by Find Method: " & newRange
End Sub
輸出: