2014-02-20 230 views
2

我在網上發現了一個宏,用密碼來保護工作表。它工作正常,但是當我保存文件時,我收到消息:運行時錯誤'9':訂閱超出範圍。我以前從未編程或使用過visual basic,可以使用一些幫助。謝謝宏運行時錯誤'9':下標超出範圍

宏:

Private Sub Workbook_BeforeClose(Cancel As Boolean) 

'Step 1:Protect the sheet with a password 
    Sheets("Sheet1").protect Password:="btfd" 

'Step 2: Save the workbook 
    ActiveWorkbook.Save 
End Sub 

回答

3

「下標越界」表示你試圖從一個不存在的集合訪問的元素。工作簿中是否有「Sheet1」?如果不是,則需要將其更改爲要保護的工作表名稱。

2

爲什麼你使用宏? Excel內置了密碼保護功能。當您選擇文件/另存爲...應該有一個工具按鈕保存按鈕,點擊它,然後「常規選項」,您可以輸入一個「密碼打開」和一個「密碼修改」。

0

當您收到錯誤消息時,您可以選擇單擊「調試」:這會將您引導至發生錯誤的行。暗Canuck似乎是正確的,我猜錯誤發生在線上:

Sheets("Sheet1").protect Password:="btfd" 

因爲很可能「Sheet1」不存在。但是,如果你說「它工作正常,但是當我保存文件時,我收到消息:運行時錯誤'9':訂閱超出範圍」它使我認爲錯誤發生在第二行:

ActiveWorkbook.Save 

請問您可以通過先按下Debug按鈕來檢查這個嗎? 最重要的是,正如Gordon Bell所說,你爲什麼要用宏來保護工作簿?

相關問題