VBA 中的單元格選擇

Iqra Hasnain 2023年1月30日 2022年5月26日
  1. 在 VBA 中選擇單個單元格
  2. 在 VBA 中選擇一系列單元格
  3. 在 VBA 中選擇一系列不連續的單元格
  4. 在 VBA 中選擇工作表中的所有單元格
  5. 在 VBA 中選擇一行
  6. 在 VBA 中選擇一列
  7. 在 VBA 中選擇列中的最後一個非空單元格
  8. 在 VBA 中選擇一行中的最後一個非空單元格
  9. 在 VBA 中選擇當前區域
  10. 在 VBA 中選擇相對於另一個單元格的單元格
  11. 在 VBA 中選擇一個命名範圍
  12. 在 VBA 中選擇另一個工作表上的單元格
  13. 在 VBA 中操作 Selection 物件
VBA 中的單元格選擇

在接下來的這篇文章中,我們將討論 VBA 中的單元格選擇以及如何在 VBA 中選擇單元格範圍。

VBA 允許我們選擇工作表中的一個單元格、單元格範圍或所有單元格。你可以使用 Selection 物件操作選定的單元格或內容。

在 VBA 中選擇單個單元格

我們可以使用 Select 方法在工作表中選擇一個單元格。以下程式碼將選擇 ActiveWorksheet 中的單元格 B2

# VBA
Range("B2").Select

或者我們可以使用另一種方法,如下所示。

# vba
Cells(2, 2).Select

兩個程式碼的輸出如下所示。

在 VBA 中選擇單個單元格

在 VBA 中選擇一系列單元格

我們可以使用 Select 技術和 Range 物件在工作表中選擇一組單元格。以下程式碼將選擇 A1:B5,如下所示。

# VBA
Range("A1:B5").Select

輸出:

在 VBA 中選擇一系列單元格

在 VBA 中選擇一系列不連續的單元格

在 VBA 中,你可以通過使用逗號分隔單元格或範圍來選擇不相鄰的單元格或範圍。以下程式碼將允許你選擇單元格 B1D1F1,如下所示。

# VBA
Range("B1, D1, F1").Select

輸出:

在 VBA 中選擇不連續的單元格範圍

我們還可以使用 VBA 選擇一組不連續的範圍。以下程式碼將選擇 A1:A5B5:B8,如下所示。

# VBA
Range("A1:A5, B5:B8").Select

輸出:

在 VBA 中選擇不連續的單元格範圍第 2 部分

在 VBA 中選擇工作表中的所有單元格

我們可以在 VBA 的幫助下選擇工作表中的所有單元格。下面的程式碼將選擇工作表中的所有單元格。

# VBA
Cells.Select

輸出:

使用 VBA 中的工作表選擇所有單元格

在 VBA 中選擇一行

我們可以藉助 Row 物件和我們要選擇的行的索引號來選擇工作表中的特定行。下面的程式碼將選擇我們工作表中的第一行。

# VBA
Rows(2).Select

輸出:

在 VBA 中選擇一行

在 VBA 中選擇一列

我們可以藉助 Column 物件和我們要選擇的列的索引號來選擇工作表中的特定列。以下程式碼將在下面的工作表中選擇 B 列。

# VBA
Columns(2).Select

輸出:

在 VBA 中選擇一列

在 VBA 中選擇列中的最後一個非空單元格

我們在單元格 B1B2B3B4 中有資料,我們想要選擇最後一個非空白單元格,它可能是列中的單元格 B4。我們可以使用 VBA 和 Range.End 方法來執行此操作。

Range.End 方法可以採用這四個選項:xlToLeftxlToRightxlUpxlDown

下面的程式碼將選擇最後一個非空白單元格,在這種情況下為 B4,如果 B1 是活動單元格,如下所示。

# VBA
Range("B1").End(xlDown).Select

輸出:

在 VBA 的列中選擇非空的最後一個單元格

在 VBA 中選擇一行中的最後一個非空單元格

假設我們在單元格 A2B2C2D2E2 中有資料,我們想要選擇最後一個非空白單元格,它可能是該行中的單元格 E2 .我們可以使用 VBA 和 Range.End 方法。

下面的程式碼將選擇最後一個非空白單元格,在這種情況下為 E2,如果 A2 是活動單元格,如下所示。

# VBA
Range("A2").End(xlToRight).Select

輸出:

在 VBA 中選擇一行中的非空最後一個單元格

在 VBA 中選擇當前區域

我們可以使用 Range 物件的 CurrentRegion 屬性來選擇給定輸入單元格周圍的空白和非空白單元格的矩形範圍。如果我們在單元格 A2B2C2 中有資料,以下程式碼將選擇單元格 A2 周圍的這個區域:

# VBA
Range("A2").CurrentRegion.Select

輸出:

在 VBA 中選擇當前區域

在 VBA 中選擇相對於另一個單元格的單元格

我們可以使用 Offset 屬性來選擇一個相對於另一個單元格的單元格。下一個程式碼向我們展示瞭如何選擇單元格 C3、靠近單元格 A1 的兩行和兩列。

# VBA
Range("A1").Offset(2, 2).Select

輸出:

在 VBA 中使用偏移量選擇單個單元格

在 VBA 中選擇一個命名範圍

我們也可以選擇命名範圍。假設我們將單元格命名為 B1:B4 程式碼。

我們可以使用下面的程式碼來選擇這個命名範圍,如下圖。

# VBA
Range("Code").Select

輸出:

在 VBA 中選擇一個命名的單元格範圍

在 VBA 中選擇另一個工作表上的單元格

我們首先需要使用 Worksheets.Activate 方法啟用工作表以選擇另一個工作表上的單元格。下一個程式碼將允許你選擇 Sheet2 上的單元格 A4

# VBA
Worksheets("Sheet2").Activate
Range("A4").Select

輸出:

從 VBA 中的另一個工作表中選擇單個單元格

在 VBA 中操作 Selection 物件

一旦我們選擇了一個單元格或單元格範圍,我們可以參考 Selection 物件來操作這些單元格。以下程式碼選擇單元格 B1:D1 並將這些單元格的字型設定為 Calibri,將字型粗細設定為粗體,將字型樣式設定為斜體,並將填充顏色設定為藍色。

# VBA
Sub newFunc()

Range("B1:D4").Select
Selection.Font.Name = "Calibri"
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Interior.Color = vbBlue

End Sub

輸出:

在 VBA 中選擇範圍和更改格式

在 VBA 中使用 With 構造

我們可以使用 WithEnd With 語句關聯上面的示例,以僅引用一次 Selection 物件。這會不斷輸入,通常會使你的程式碼更易於閱讀。

# VBA
Sub newFunc()

Range("B1:D4").Select
With Selection
.Font.Name = "Calibri"
.Font.Bold = True
.Font.Italic = False
.Interior.Color = vbBlue

End With
End Sub

輸出:

在 VBA 中使用 with 構造和更改格式選擇範圍