2013-07-01 122 views

回答

22

您無法選擇非活動工作簿中的工作表。

您必須先激活工作簿,然後才能選擇工作表。

workbooks("A").activate 
workbooks("A").worksheets("B").select 

當你使用它激活自動激活工作簿。

注意可以在一個工作簿選擇> 1片:

activeworkbook.sheets(array("sheet1","sheet3")).select

但只有一個片可以活動的,並且如果激活的片材,其是不是多片材選擇的一部分,那麼那些其他表將被取消選擇。

+0

非常感謝!我記得我從某處讀過.select不推薦使用,你碰巧知道爲什麼? – user2495069

+1

這個建議通常來自於使用宏記錄器生成而沒有任何編輯。通常情況下,記錄器會生成一些代碼,比如Range(「A1」),然後選擇'Selection.Copy',而只用'Range(「A1」)。如果你的代碼使用了「Select」(特別是在範圍上),那麼如果「錯誤」工作表處於活動狀態,它可能會中斷,從而使你的宏變得不那麼健壯。避免選擇和直接在對象上工作本身更快,更脆弱。 –

+1

我明白了!非常感謝!我能再問一個問題嗎?在什麼情況下,activesheet會被改變,比如說當前的activesheet是B,然後我改變sheetA中單元的格式或值,activesheet會變成sheetA? – user2495069

相關問題