ExcelVBA解讀(71):Activate方法與Select方法


微信公眾號:excelperfect

 

通常情況下,正如上篇文章結尾所講的,通過引用指定工作表后,我們無須激活該工作表即可對該工作表單元格進行操作。然而,在某些情形下,可能還是需要激活或者選擇某工作表,例如,在進行一些復制后粘貼操作時。

 

下面,我們就來講解Worksheet對象的Activate方法及相關的Select方法。

 

Activate方法和Select方法都可以激活工作表,使其成為當前工作表。在VBA幫助文檔中,Activate方法屬於Worksheet對象,而Select方法屬於Worksheets集合對象和Sheets集合對象。

 

下面的代碼:

Worksheets("Sheet2").Activate

使工作表Sheet2成為活動工作表,等價於在工作表界面中單擊了Sheet2工作表標簽。

 

然而,在錄制宏時,Excel會使用Sheets集合的Select方法。例如,在打開新工作簿時,Excel一般默認Sheet1工作表為當前工作表,此時,打開宏錄制器,選取Sheet2工作表,錄制的代碼如下:

Sub Macro1()

'

' Macro1 Macro

'

 

'

    Sheets("Sheet2").Select

End Sub

 

下面的語句:

Sheets.Select

選擇工作表中所有的工作表,如下圖所示:

 

在工作簿中,工作表Sheet1為當前工作表,按住Ctrl鍵,選取工作表Sheet2,這樣同時選取工作表Sheet1和Sheet2,如下圖所示:

錄制上述操作的代碼如下:

Sub Macro2()

'

' Macro2 Macro

'

 

'

    Sheets(Array("Sheet1","Sheet2")).Select

    Sheets("Sheet1").Activate

End Sub

說明:

  • Excel將同時選中的工作表編成工作組,並以剛開始的活動工作表為組中的活動工作表。

  • Array函數創建一個數組。

 

Select方法有一個可選的參數Replace,當指定該參數值為True時,使用指定的工作表代替當前的工作表成為活動工作表。

例如,當前工作表為Sheet2,運行下面的語句:

Sheets("Sheet3").SelectTrue

工作表Sheet3將成為活動工作表,如下圖所示:

當然,上面的語句不帶參數也會使Sheet3成為活動工作表。

當指定該參數值為False時,將擴展選定的工作表包含指定的工作表。

例如,當前工作表為Sheet2,運行下面的語句:

Sheets("Sheet3").SelectFalse

將擴展選定的工作表為Sheet2和Sheet3,如下圖所示:

 

Activate方法與Select方法的區別

  • 在激活或者選取隱藏的工作表時,要使用Activate方法。如果使用Select方法,則會報錯。

  • 正如在上文中所看到的,Select方法一次可以選取一個或者多個工作表,但Activate方法一次只能激活一個工作表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM