在 Microsoft Excel 中,通常要先選取一個或多個儲存格,然後執行某一作業,如設定儲存格的格式,或在儲存格中輸入數值。 在 Visual Basic 中,修改儲存格之前,通常不需要先選取儲存格。
例如,若要使用 Visual Basic 在儲存格 D6 中輸入公式,您不需選取範圍 D6。 只需傳回該儲存格的 Range 物件,然後將 Formula 屬性設為您要的公式,如下列範例所示。
Sub EnterFormula()
Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"
End Sub
如需使用其他方法控制儲存格而不選取儲存格的詳細資訊和範例,請參閱 如何:參考儲存格和範圍。
使用 Select 方法和 Selection 屬性
Select 方法可啟動工作表和工作表上的物件;而 Selection 屬性傳回代表現用活頁簿中作用工作表上目前選取範圍的物件。 在成功地使用 Selection 屬性之前,必須先啟動活頁簿,用 Select 方法啟動或選取工作表,然後再選取範圍 (或其他物件)。
巨集錄製器通常會建立使用 Select 方法和 Selection 屬性的巨集。 下列 Sub 程序是使用巨集錄製程式所建立的,並說明如何同時使用 Select 和 Selection 屬性。
Sub Macro1()
Sheets("Sheet1").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "Name"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Address"
Range("A1:B1").Select
Selection.Font.Bold = True
End Sub
下列範例會執行相同的工作,而不需要啟動或選取工作表或儲存格。
Sub Labels()
With Worksheets("Sheet1")
.Range("A1") = "Name"
.Range("B1") = "Address"
.Range("A1:B1").Font.Bold = True
End With
End Sub
選取使用中工作表上的儲存格
如果您是用 Select 方法選取儲存格,請注意,Select 方法僅適用於使用中的工作表。 從模組中執行 Sub 程序時,必須先在該程序中啟動工作表,然後才能用 Select 方法選取儲存格範圍,否則 Select 方法將失敗。 例如,下列程序將使用中活頁簿上 Sheet1 中的某一列複製到 Sheet2 上。
Sub CopyRow()
Worksheets("Sheet1").Rows(1).Copy
Worksheets("Sheet2").Select
Worksheets("Sheet2").Rows(1).Select
Worksheets("Sheet2").Paste
End Sub
啟動選取範圍內的儲存格
您可以用 [啟用] 方法啟用選定範圍內的儲存格。 即使已選取了某儲存格範圍,但也只能有一個作用中的儲存格。 下列程序選取了一個範圍,然後啟動該範圍內的一個儲存格,但並不改變選定範圍。
Sub MakeActive()
Worksheets("Sheet1").Activate
Range("A1:D4").Select
Range("B2").Activate
End Sub
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。