隐藏 VBA 代码(项目已锁定,无法查看)拒绝用户表单宏
Hidden VBA Code (project locked from viewing ) denies User Form Macro
我想我面临着下面 link 中 Gaus Shaikh 提出的同样问题,但我觉得当时他没有被理解。我试着在这个话题上多花一些话来帮助你们支持。
我创建了另一个问题,因为在我看来,Gaus 问题的标题可能会被误解。
总而言之,我们在处理生成用户表单的 excel 宏时遇到了问题。实际上,如果 VBA 项目受密码保护,宏就会起作用。奇怪的是,如果我只是隐藏代码(Visual Basic 编辑器 -> VBA 项目属性 -> 保护 -> 锁定项目查看 -> 插入密码 -> 确定),宏甚至无法工作如果项目没有密码保护。
我被困在这里了。我找不到解决方案。你们有什么想法吗?
(我使用的是 excel 2013)
提前致谢!
高斯谢赫问题:
VBA password protected project not opening userform
N.B:
基本上,任何生成用户表单的宏都会给出“run-time 错误 50289。项目受到保护。”例如,以下生成空用户表单的宏在代码被隐藏时会失败,而在代码被显示时会起作用。
Public Sub goUserForm()
Dim mainframe As Object
'Set main frame
Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3)
'Show the form
VBA.UserForms.Add(mainframe.Name).Show
End Sub
要完全理解这个问题,请在您的工作表上尝试这个宏,然后隐藏您的代码。保存、关闭并打开文档。除非您显示代码,否则宏将无法运行。
好的,现在更清楚了。由于 VBA 项目受到保护,您即使不使用代码也无法访问它。任何其他代码都可以。
所以,这行不通
Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3)
VBA.UserForms.Add(mainframe.Name).Show
像这样不访问 VBA 项目的代码可以工作
UserForm2.Hide
UserForm1.Show
我想我面临着下面 link 中 Gaus Shaikh 提出的同样问题,但我觉得当时他没有被理解。我试着在这个话题上多花一些话来帮助你们支持。
我创建了另一个问题,因为在我看来,Gaus 问题的标题可能会被误解。
总而言之,我们在处理生成用户表单的 excel 宏时遇到了问题。实际上,如果 VBA 项目受密码保护,宏就会起作用。奇怪的是,如果我只是隐藏代码(Visual Basic 编辑器 -> VBA 项目属性 -> 保护 -> 锁定项目查看 -> 插入密码 -> 确定),宏甚至无法工作如果项目没有密码保护。
我被困在这里了。我找不到解决方案。你们有什么想法吗? (我使用的是 excel 2013)
提前致谢!
高斯谢赫问题: VBA password protected project not opening userform
N.B: 基本上,任何生成用户表单的宏都会给出“run-time 错误 50289。项目受到保护。”例如,以下生成空用户表单的宏在代码被隐藏时会失败,而在代码被显示时会起作用。
Public Sub goUserForm()
Dim mainframe As Object
'Set main frame
Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3)
'Show the form
VBA.UserForms.Add(mainframe.Name).Show
End Sub
要完全理解这个问题,请在您的工作表上尝试这个宏,然后隐藏您的代码。保存、关闭并打开文档。除非您显示代码,否则宏将无法运行。
好的,现在更清楚了。由于 VBA 项目受到保护,您即使不使用代码也无法访问它。任何其他代码都可以。 所以,这行不通
Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3)
VBA.UserForms.Add(mainframe.Name).Show
像这样不访问 VBA 项目的代码可以工作
UserForm2.Hide
UserForm1.Show