我目前遇到VBA脚本问题。它跳过一些代码行而没有任何错误消息。奇怪的是,使用VBA脚本的所有用户都不会发生这种情况。
VBA脚本是Excel工作簿的一部分,旨在在运行时调用第二个过程。第二个过程应该构建一个表单并执行一些进一步的操作(格式化等)。 VBA脚本进入第二个过程但不执行一行。相反,它只是继续使用主程序中的代码。
Sub Main()
Dim oClient as Object
...
'Call procedure to create form
Call CreateForm(oClient)
...
End Sub
Sub CreateForm(ByRef oClient As Object)
Dim oForm As Object
Set oForm = oClient.VBProject.VBComponents.Add(3)
With oForm
.Properties("Caption") = "Partner Export"
.Properties("Name") = "frmPartner"
.Properties("Width") = 300
.Properties("Height") = 240
End With
...
End Sub
将代码减少到最低程度以显示程序。真正的VBA代码更大更复杂 - 这就是为什么我把它分成两个程序。
对象oClient
在主过程中创建并传递给CreateForm
过程。在调用CreateForm
之后,VBA脚本只是跳过子的所有行而没有通知。
这种行为可能是什么原因?特别是在背景情况下,每个用户都没有这样做。
答案 0 :(得分:0)
您在评论中确认了我的怀疑,解决方案是在“宏安全性”设置中“信任对VBA项目对象模型的编程访问”。这允许VBA引用VBProject
个对象。