VBA中Activate方法和Select方法的區別?

VBA中Activate方法和Select方法的區別?使用者24933086915582682019-09-04 22:57:17

VBA中的Activate方法和Select方法看起來似乎相同,其實二者是有區別的。Activate方法的作用是啟用,而Select方法的作用是選擇。其區別如下:

1。對於“Sheets”物件

Sheets。Select可以同時選擇多個工作表,而Sheets。Active不能同時啟用多個工作表。如下面的語句:

Sub Test1()

ActiveWorkbook。Sheets(Array(1, 2, 3))。Select ‘可以同時選擇3個工作表

End Sub

Sub Test2()

ActiveWorkbook。Sheets(Array(1, 2, 3))。Activate ’不能同時啟用3個工作表,出現錯誤

End Sub

另外,對於隱藏的工作表,Sheets。Select方法不能選擇隱藏的工作表,而Sheets。Activate方法可以啟用隱藏的工作表。如下面的程式碼:

Sub Test3()

ActiveWorkbook。Sheets(2)。Visible = False ‘隱藏工作表

ActiveWorkbook。Sheets(2)。Select ’無法選擇隱藏的工作表,產生錯誤

End Sub

Sub Test4()

ActiveWorkbook。Sheets(2)。Visible = False ‘隱藏工作表

ActiveWorkbook。Sheets(2)。Activate ’可以啟用隱藏的工作表

End Sub

2。對於“Range”物件

首先說明一下活動單元格和選定區域:

某個選定的區域中只能有一個活動單元格,通常活動單元格位於所選區域的左上角。如下圖我們選擇了A1:G10區域,A1單元格是高亮顯示的,A1單元格就是活動單元格。當我們用鍵盤進行輸入的時候,鍵入的內容將被輸入到活動單元格中。

如果我們要讓區域中的其他單元格變成活動單元格,可以按Tab鍵,將使區域中當前活動單元格右方的單元格變為活動單元格,而按Shift+Tab則方向相反;或按Enter鍵,將使區域中當前活動單元格下方的單元格變為活動單元格,而按Shift+Enter則方向相反。

“Range”物件的的Select方法可以選擇一個或多個單元格,而Activate方法可以指定某一個單元格為活動單元格。 如果我們用下面的程式碼試圖啟用某個區域:

Range(“d4:e5”)。Activate

Excel將僅僅啟用D4單元格,但同時選擇了D4:E5區域。下面的程式碼首先選擇A1:E10區域,同時啟用D4單元格:

Sub test()

Range(“a1:e10”)。Select

Range(“d4:e5”)。Activate

End Sub

而對於下面的程式碼:

Sub test()

Range(“a1:e10”)。Select

Range(“f11:g15”)。Activate

End Sub

由於區域A1:E10和F11:G15沒有公共區域,將最終選擇F11:G15,並激活F11單元格。

由上可見,當我們要選擇某個區域時最好用Select方法,而不用Activate方法,否則可能會出現意想不到的錯誤。

https://blog。csdn。net/cactusz/article/details/74561657