簡體   English   中英

宏運行時錯誤'9':下標超出范圍

[英]macro run-time error '9': subscript out of range

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

宏是:

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

“下標超出范圍”表示您已嘗試從不存在的集合中訪問元素。 您的工作簿中是否有“Sheet1”? 如果沒有,您需要將其更改為要保護的工作表的名稱。

你為什么用宏? Excel內置密碼保護功能。 當您選擇文件/另存為...時,按“保存”按鈕應該有一個“工具”按鈕,然后單擊“常規選項”,您可以在其中輸入“要打開的密碼”和“要修改的密碼”。

當您收到錯誤消息時,您可以選擇單擊“Debug”:這將引導您到出現錯誤的行。 Dark Canuck似乎是正確的,我猜錯誤發生在線上:

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

因為很可能“Sheet1”不存在。 但是,如果你說“ 它運行正常,但是當我保存文件時,我收到消息:運行時錯誤'9':訂閱超出范圍 ”它讓我覺得錯誤發生在第二行:

ActiveWorkbook.Save

你能先點擊Debug按鈕檢查一下嗎? 最重要的是,正如Gordon Bell所說,你為什么使用宏來保護工作簿?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM