2017-07-14 122 views
1

這是我第一篇文章,也是我在VBA中編程的新手。我有一個大的Excel文件,我試圖創建一個宏來刪除多個選項卡。我的代碼遵循它的作品,因爲我提示一個我想永久刪除:工作表中傳輸的VBA運行時錯誤「9」(下標超出範圍)

Option Explicit 

Sub delSheet() 

Worksheets("sheet2").Delete 

End Sub 

然而,當我在標籤傳輸(標籤名稱是「sheet92' )從另一個文件我得到使用這個錯誤相同的代碼

Option Explicit 

Sub delSheet() 

Worksheets("sheet92").Delete 

End Sub 

什麼引起的代碼刪除Sheet 2中這是我內打開一個.xlsb文件並從現有複製到該文件中創建一個新的片材相對於該錯誤消息創建的標籤文件?謝謝你提前幫你。

回答

1

你的問題不是很清楚,但你可能要引用正確的工作簿,這樣的:

Workbooks("file.xlsx").Worksheets("sheet92").Delete 

如果工作簿是尚未激活,只給Worksheets("sheet92")將無法​​正常工作。

+0

我更改了代碼以引用工作簿。工作簿名稱是WW OCOGS Jun 17 Pass 2 Test Book,我輸入的新代碼是Workbooks(「WW OCOGS Jun 17 Pass 2 Test Book .xlsm」)。Worksheets(「sheet92」)。Delete'。但是,我現在正在收到錯誤消息,編譯錯誤Sub或函數未定義。另外,當我輸入文本時,在輸入工作簿代碼後,我會得到自動填充選項,例如切換活動工作表或工作表,但在輸入工作表鏈接後,VBA不會給我任何選項來自動選擇代碼中的下一項串。 –

+0

@JSBach適合我。你忘了「s」還是什麼?工作表後我沒有自動選擇,但這不是問題。如果您將「刪除」替換爲「激活」,它會起作用嗎? – cub

+0

@JSBach作爲參考,類工作表的所有方法都在[這裏是MSDN](https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-object-excel)中描述。請注意,該類是Worksheet,但要選擇一個特定的「Worksheets(」name「)」,並帶有「s」。 '工作表'集合(它指** ** active **工作簿)在[這裏](https://msdn.microsoft.com/VBA/Excel-VBA/articles/worksheets-object-excel)中描述,而(所有打開的工作簿)的工作簿集合在這裏描述(https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbooks-object-excel) – cub

0

我解決了我的第一個程序錯誤!我使用了錯誤的名稱,我使用的是字段(名稱)與選項卡的實際名稱,我在這裏使用了屏幕截圖! http://imgur.com/a/bPNkg!一旦我使用名稱Sheet1,我可以刪除。感謝您的幫助@cub

相關問題