VBA - Excel編程概念之:【單元格和區域】三、選定和激活單元格

選定和激活單元格

使用 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 方法選定單元格區域,否則該方法將失敗。例如,下述過程在活動工作簿中將 Sheet1 中的一行復制到 Sheet2 上。

Sub CopyRow()
    Worksheets("Sheet1").Rows(1).Copy
    Worksheets("Sheet2").Select
    Worksheets("Sheet2").Rows(1).Select
    Worksheets("Sheet2").Paste
End Sub

激活選定區域內的單元格

可用 Activate 方法激活選定區域內的單元格。即使選定了單元格區域,也只能有一個活動單元格。下述過程選定了一個單元格區域,然後激活該區域內的一個單元格,但並不改變選定區域。

Sub MakeActive()
    Worksheets("Sheet1").Activate
    Range("A1:D4").Select
    Range("B2").Activate
End Sub

 
發佈了30 篇原創文章 · 獲贊 11 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章