首页  > 时光论坛

在 VBA 中计算列数

在 VBA 中计算列数

在 VBA 中计算范围内的列

在 VBA 中使用 Range().End 方法

在 VBA 中使用 Cells.Find() 方法

本文将讨论在 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

输出:

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe