对多个工作簿使用单个密码(Microsoft Excel)
Bill有一组经常用作套件的多个工作簿。
为了防止窥视这些工作簿的内容,他为每个工作簿设置了密码。 Bill使用菜单工作簿作为该套件中其他工作簿的网关。该工作簿包含指向各个工作簿的超链接,从而使他可以快速访问其套件中的工作簿。
由于Excel通过密码来保护每个工作簿在文件级别,因此,无论Bill何时单击超链接,他都需要输入他尝试访问的工作簿的密码。他想知道是否有一种方法可以只输入一次密码(对于他的套件中的所有工作簿都使用相同的密码),并且无需重复输入密码就可以访问所有工作簿。
简短的答案是,由于Excel会分别对待每个文件,因此无法完成此操作。通过超链接切换到一个单独的文件,然后Excel再次要求输入密码。避免烦恼只有两种可能的方法。第一种是将所有单独的工作簿合并为一个工作簿。由于多种原因,这可能不是最佳解决方案。 (例如,您可能需要将单个工作簿分发给其他用户。如果将所有工作簿合并为一个,则将删除此功能。)
另一种解决方案是使用宏来处理工作簿之间的切换,而不是使用超链接。建立宏系统的方法有很多,但是模仿超链接方法的一种简单方法是创建一个新的工作表,作为您的“网关”。在要添加超链接的单元格中,而是放置要链接到的每个工作簿的完整路径和文件名。
您应该最终得到工作簿的文件规范列表。
现在,右键单击此新工作表的工作表选项卡。 Excel将显示一个上下文菜单,您应该从中选择“查看代码”。这将显示VBA编辑器,并为工作表显示代码窗格。在代码窗格中输入以下宏:
Private Sub Worksheet_BeforeDoubleClick _ (ByVal Target As Excel.Range, Cancel As Boolean) Dim sPW As String Dim sFile As String sPW = "password" 'Change to your password sFile = Target.Value If sFile <> "" Then If Dir(sFile) <> "" Then Workbooks.Open _ FileName:=sFile, _ password:=sPW Cancel = True End If End If End Sub
您唯一需要更改的代码就是您要用于所访问的工作簿的密码。 (代码假定所有工作簿都使用相同的密码。)
按Alt + Q退出VBA编辑器,然后返回工作表。保存工作簿,然后双击任何包含路径和文件名的单元格。 Excel的作用是将控制权传递给获取路径和文件名的宏,然后打开该工作簿。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(2886)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: