vba – 忽略“用户定义的类型未定义”错误

我有“用户定义的类型未定义”的问题,但我不想解决它,我想忽略它.

情况:在word文档(.docm)中我使用外部dll(C#,由我创建,我可以控制它).此dll用于改进对文档的控制(导入模型部件/搜索依赖参数/ …). dll定义特定的用户类型

当用户单击按钮时,将调用自定义dll.它检查dll是否加载.如果没有,它会显示“禁用操作”之类的消息

电话的例子:

' This call is from "ThisDocument"
Private Sub planAction_Click()
    ' If the dll is not load, display warning message
    If Not MqDllInstalled Then
        Call MsgBox("Actions disabled", vbInformation, "Action unavailable")
        Exit Sub
    End If

    ' This function is in a module
    Call FuncPlanAction
End Sub

它打电话

Public Sub FuncPlanAction()
    ...
    If exist Then
        ' WordElementType_PlanAction is a "User-Type Defined"
        Call GotoTable(WordElementType_PlanAction, Now)
    End If
    ...
End Sub

和GotoTable的定义

Private Sub GotoTable(ByVal name As WordElementType, ByVal dt As Date)

因此,如果我单击“planAction”按钮,而不是仅显示消息“已禁用操作”,则会引发“用户定义的类型未定义”,因为它尝试解析FuncPlanAction.

我想要的是:没有错误提升.

为什么不解决:文档必须是共享的,如果引用不可用,我只是禁用高级功能.

我知道的:

>问题的来源:引用未解决,因此找不到用户定义的类型
> VBA编译器的工作原理:它在调用完成后尝试加载模块(如果此模块调用另一个模块,则会发生同样的情况).因此,在我使用用户类型的用户调用模块之前,不会引发“用户类型”.

我尝试过的:

>我有一个单独的模块“LoadDll”没有定义用户类型来尝试加载自定义DLL.如果他找不到要加载的dll / tlb,则加载时不会出错.
>使用On错误goto / On错误继续下一步(在planAction_Click和FuncPlanAction中)环绕调用者
>将功能放在不同的模块中

有谁知道如何捕获此错误?不提高吗?还有其他建议吗?

谢谢你提前

最佳答案 尝试更换此行

Call FuncPlanAction

有了这个

Call Application.Run("FuncPlanAction")
点赞