过程不执行所有代码行

时间:2014-02-25 14:11:00

标签: excel vba excel-vba

我目前遇到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脚本只是跳过子的所有行而没有通知。

这种行为可能是什么原因?特别是在背景情况下,每个用户都没有这样做。

1 个答案:

答案 0 :(得分:0)

您在评论中确认了我的怀疑,解决方案是在“宏安全性”设置中“信任对VBA项目对象模型的编程访问”。这允许VBA引用VBProject个对象。