macros运行时错误“9”:下标超出范围

我在网上发现了一个macros,用密码来保护工作表。 它工作正常,但是当我保存文件,我得到的消息:运行时错误'9':订阅超出范围。 我从来没有编程或使用过Visual Basic,可以使用一些帮助。 谢谢

macros是:

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”? 如果不是,则需要将其更改为要保护的工作表的名称。

你为什么使用macros? Excel内置了密码保护function。 当你select文件/另存为…应该有一个工具button保存button,点击它,然后在“常规选项”,您可以input一个“密码打开”和“密码修改”。

当你收到错误信息时,你可以select点击“debugging”:这会导致你到错误发生的地方。 黑暗的Canuck似乎是正确的,我想错误发生在线上:

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

因为很可能“Sheet1”不存在。 但是,如果你说“ 它工作正常,但是当我保存文件,我得到的消息:运行时错误'9':订阅超出范围 ”这让我觉得错误发生在第二行:

 ActiveWorkbook.Save 

你可以通过先按下Debugbutton来检查这个吗? 最重要的是,正如Gordon Bell所说,你为什么要用macros来保护工作簿呢?