在 VBA 中計算列數

Iqra Hasnain 2023年1月30日 2022年6月2日
  1. 在 VBA 中計算列數
  2. 在 VBA 中計算範圍內的列
  3. 在 VBA 中使用 Range().End 方法
  4. 在 VBA 中使用 Cells.Find() 方法
在 VBA 中計算列數

本文將討論在 Excel 中使用 VBA 輕鬆計算包含資料的列的兩種方法。

在 VBA 中計算列數

當我們有一個包含幾列的小資料表時,我們可以很容易地統計它們,但是對於一個大資料表來說,要統計所有列而沒有任何錯誤是相當困難的。除此之外,某些列可能包含資料,而某些列可能完全空白。

因此,在大資料表的情況下計算所有列的資料是非常困難的。現在,讓我們建立一個包含一些示例資料的工作表。

建立工作表以計算 VBA 中的列數

我們可以在下面的資料表中看到三列。為了控制單個 Excel 工作表中使用的列數,我們將使用 VBA 程式碼。

首先,我們通過按 ALT + F11 鍵開啟 VBA 編輯器。之後,從 Insert > Module 建立一個新模組。

建立新巨集來計算 VBA 中的列數

然後,建立一個新的 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 對話方塊將如下所示。

輸出:

使用 With 迴圈計算 VBA 中的列

在 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

輸出:

使用 End 方法計算 VBA 中最後一列被用於工作表右側的列

我們在彈出的對話方塊中獲取最後一列的編號,如上圖所示。

在 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

輸出:

使用 Find 方法計算 VBA 中的列數

相關文章 - VBA Column