我有一个想法,我想让某些人接受。所以,假设我有一个excel电子表格,这就是我想要做的。如果我的桌面上有一个.xlsx文件 - 我是以任何形式编码或编写代码的,这样当我点击该文件时,它会要求用户在工作簿打开之前登录?我问的原因是因为excel电子表格中有宏。因此,在打开工作簿时,它首先提示用户启用编辑,然后执行任何ThisWorkbook_OPEN事件代码(在这种情况下,我隐藏所有选项卡,但是一个空白,显示登录表单;登录后,我显示选项卡) )。在他们点击启用编辑之前,他们可以做任何事情。任何人都有任何想法如何做到这一点?
答案 0 :(得分:2)
不,您无法从尚未打开的工作簿中运行代码。
要触发的第一个事件是Workbook_Open
事件,但在此之前,Excel处理有充分理由的安全层(您是否愿意允许任意代码被允许从您刚从网站下载的某个文件中运行,而不先征得您的许可?)。它有时很烦人,但你应该总是编写代码,意图使用 系统安全功能,而不是围绕它们。
说实话 - 如果你有一些它是如此保密的东西,你需要保护它这么大,它可能不应该首先在Excel文件中。 Excel工作簿不安全 - 我是一名新手程序员,我可以在5分钟内完成密码保护的Excel工作簿/ VBA项目。
答案 1 :(得分:1)
为了在工作簿打开之前锁定它,office提供了一种锁定机制。
Password Management Documentation
一旦打开工作表,如果用户未启用宏,则无法确保宏的运行。唯一的选择是将工作簿保存在受信任的位置。在这种情况下,宏将在没有提示的情况下运行。 (非常不安全)
Trusted Location Documentation
一旦你设法运行宏,那么你的建议是可能的。可能有两种方法:
运行宏以显示具有用户ID&密码。如果密码正确,请允许excel打开。否则,关闭它。
制作一张额外的工作表,其中两个单元格作为表单。运行宏以验证详细信息并允许访问。
可以使用excel的xlveryhide功能锁定工作表。