我可以使用C#dll终止VBA宏执行吗

丹尼斯

在VBA中,我可以使用End如下语句终止宏的执行

Sub DoSomeThing()
    Dim test As Boolean
    test = false
    test = function()
    If test Then
        End 'Macro execution is terminated
    End if
End Sub

我希望C#DLL包含具有相同效果的方法吗?我正在考虑以下内容。

public void DoSomething_CSharp()
{
    var test = false;
    test = Function();
    if (test)
    {
        //Call a command here that terminates execution of the VBA macro that calls this method.
    }
}

我意识到这End是VBA语句,但是我不知道如何从C#DLL中访问VBA语句。(正如这个问题所表明的,我是C#的新手。)

Heinzi

是什么End在VBA吗?

  • 在MS Access Runtime中,它会中断执行并关闭应用程序。
  • 在其他Office应用程序(例如Excel或“非运行时”模式下的Access)中,它会中断执行并通过调用堆栈回退到UI层。

由于您用“ Excel”标记了您的问题,因此我假设您想要第二种行为。

在.NET中,“跳过调用堆栈”的唯一方法是引发异常:

throw new Exception("...some message...");

但是,这将导致您的VBA应用程序执行其错误处理程序。如果要返回特定的错误代码(以便可以在UI层处理和/或忽略预期的异常),则可以引发带有特定的异常,HResult有关详细信息,请参见以下答案:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

32位导出的jar文件可以使用64位Java库执行吗?

是否可以使用Java Webstart执行.exe或dll?

我可以使用Java Scripting API将kotlin作为脚本运行吗

我们可以使用Spring-cloud-netflix和Hystrix重试失败的执行吗

我可以使用CSS在特殊字符处换行吗?

gcc可以使我的代码并行吗?

为什么我的C#DLL中的方法丢失了?

编译器可以优化不相关的命令以使用不同的内核执行吗?

我可以使用Kprobe阻止新流程执行吗?

Powershell可以从外部C#dll调用子类

在Python中使用C#DLL

我可以使用azure逻辑应用程序删除旧的azure表行吗?

我可以使用return停止在生成器函数中执行吗?

是否可以在Linux上使用.Net Core 3.1创建C ++ / CLI代码的C#DLL

我可以使用pybind加载外部c ++ dll并调用函数吗?

条件出现后,我可以使用熊猫提取行吗?

我可以使用setTimeout直观地显示while循环如何运行吗?

我可以在非托管Delphi EXE中使用托管C#DLL吗?

我可以使脚本始终以root用户身份执行吗?

我可以使用if语句来检测bash和dash是否正在交互运行吗?

在C#dll中使用平台调用

我可以使用Ubuntu从C ++套接字读取行吗?

我可以使用雄辩/流利的最大ID更新单行吗

我可以使用jquery .each()计算表单中的每一行吗?

我可以使用Jenkins Log Parser隐藏控制台行吗

在C#Dll中使用OpenFileDialog

我可以使用 Eclipse IDE 通过自定义测试用例方法强制 Junit 调试器开始调试执行吗?

我可以使用 Rcpp 就地修改行吗?

我可以使用 __str__ 返回几行吗?