我在启动时使用以下代码编译我的工作簿以防止任何与Active-X相关的错误:
Private Sub ThisWorkbook_Open()
Set compileMe = objVBECommandBar.FindControl(Type:=msoControlButton, ID:=578)
compileMe.Execute
End Sub
此代码自动执行VBE中的命令栏,并在未受保护的工作簿中运行良好。当我锁定VBE(密码保护)时,debug->编译选项被禁用,这导致上面的代码运行成错误。
这有什么解决方法吗?例如,unprotect VBE然后运行上面的代码并再次保护它来自同一个工作簿?我理解这不是一个基本的任务,因为AFAIK没有这方面的API,但有没有任何解决方案(为了稳定性目的)一个不使用发送密钥?
修改 对与问题重复混淆的道歉。您链接的问题是重复解释了如何在另一个excel实例中解锁另一个工作簿中的VBE,这没有问题,因为它工作正常但是,需要一个额外的Excel文件来充当"解锁文件&# 34;在另一个实例中打开同一个文件时,将其打开为只读。
我要做的是让相同的工作簿自行解锁,问题在于,只要窗口打开询问密码,代码就会在此时停止。原因是它将窗口打开为模态窗口,因此需要某种形式的用户输入才能继续(隐藏或卸载窗口)。所以真的,我只是想知道是否还有其他方法,或者我是否过度复杂化。