Set mainWB = Workbooks("Copy Paste.xlsb")
Set mainWS = mainWB.Sheets("Sheet1")
Set testWS = mainWB.Sheets("Sheet3")
mainWS.Select
我一直在Excel VBA中的最後一行得到一個錯誤:對象'_Worksheet'的方法選擇失敗 - 爲什麼?
「對象的方法選擇「_Worksheet失敗」
任何想法,爲什麼或如何解決這一問題?謝謝!
Set mainWB = Workbooks("Copy Paste.xlsb")
Set mainWS = mainWB.Sheets("Sheet1")
Set testWS = mainWB.Sheets("Sheet3")
mainWS.Select
我一直在Excel VBA中的最後一行得到一個錯誤:對象'_Worksheet'的方法選擇失敗 - 爲什麼?
「對象的方法選擇「_Worksheet失敗」
任何想法,爲什麼或如何解決這一問題?謝謝!
正如評論中所述,無法在VBA中選擇不活動的Sheets
(或其中的Range
對象)。
例如下面的代碼
Sheets(1).Activate
Sheets(2).Range("A1").Select
將導致你收到錯誤。
在你的情況,你似乎試圖Select
表不活躍 - 你的mainWS
對象可能不是ActiveSheet
在你調用此代碼的點。一個簡單的方法來測試,如果發生這種情況是如果你添加如下代碼的末尾:
if (ActiveSheet.Name <> mainWS.Name) then
msgbox ("Going to crash after clicking ok!")
end if
mainWS.Select
注意,您可以參考激活工作表與命令ActiveSheet
要麼獲取屬性或任何其它操作你有興趣做。
如果您通過工作簿中的所有工作表進行循環工作並且存在隱藏工作表,也會發生此錯誤。瞭解這一點。
末,且無關的特定錯誤消息,我假設你正在某處聲明的變量,只是這裏沒有複製它們 - 如果不是我會考慮使用Option Explicit
,你可以經常碰到各種各樣的問題沒有Option Explicit
在您的VBA代碼的頂部。
雖然我同意上述,同樣重要的是要注意,如果工作表的可視性當前設置爲xlSheetVeryHidden
是你的牀單實際名稱爲sheet1 /表Sheet 3刪除功能將無法正常工作?工作簿的名稱是否相同? – enderland
'mainWB'是否有效? –
因此'.Select'應該避免:)看到這個鏈接http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select –