开发从 VBA 调用的 c# 库

问题描述

嗨,我现在正在做的过程是在 VBA 中创建一个函数,如下所示:

Sub TPS_test()

    Dim classLib As Object
    ' remember you must type the set... line in its entirity when incrimenting to new version.  Something about their compiling
    
    Set classLib = New RoadTrip_v14_1_9.TripDoc
    classLib.TPS_Test Excel.ActiveWorkbook,False
    
End Sub

并从 VBA - 工具 - 参考中添加 C# 库(首先将该库编译为类型库)。

这样工作正常,我实际上可以将库附加到 Excel.exe 进程并以这种方式进行调试。

然而,这是一个抱怨的 PITA,因为我所做的每一个代码更改都需要重新编译,重新导入到 VBA 中,然后再次运行。所以我的过程实际上是:

  1. 增加项目名称 (Myproject_V1)。
  2. 编译
  3. 在 VBA 中删除对旧库的引用
  4. 添加对新库的引用。
  5. 在 VBA 中更改类名(设置 classLib = new Myproject_v1)
  6. 将 C# 库附加到 excel 流程中。
  7. 重新运行 VBA 模块。

这非常详尽且耗时。

有更好的方法吗?

解决方法

感谢响应者。最好的方法是在 C# 中生成单元测试,它会加载 excel 文件,然后在 Visual Studio 中针对它运行 C# 代码。

他们指出的第二件事,您可以重复使用相同的文件名,只需关闭excel,编译,打开excel。