繁体   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