我在网上发现了一个宏来保护带有密码的工作表。它运行正常,但是当我保存文件时,我收到消息:运行时错误'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
答案 0 :(得分:3)
“下标超出范围”表示您已尝试从不存在的集合中访问元素。您的工作簿中是否有“Sheet1”?如果没有,您需要将其更改为您要保护的工作表的名称。
答案 1 :(得分:2)
为什么使用宏? Excel内置密码保护功能。当您选择文件/另存为...时,按保存按钮应该有一个工具按钮,然后单击它,然后单击“常规选项”,您可以在其中输入“要打开的密码”和“要修改的密码”。
答案 2 :(得分:0)
当您收到错误消息时,您可以选择单击" Debug":这将引导您到达发生错误的行。 Dark Canuck似乎是正确的,我猜错误发生在这条线上:
Sheets("Sheet1").protect Password:="btfd"
因为很可能是" Sheet1"不存在。但是,如果您说" 它工作正常,但是当我保存文件时,我收到消息:运行时错误' 9':订阅超出范围&# 34;它让我觉得错误发生在第二行:
ActiveWorkbook.Save
请先按“调试”按钮检查一下吗? 最重要的是,正如Gordon Bell所说,你为什么使用宏来保护工作簿?