问题描述
嗨,我现在正在做的过程是在 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 中,然后再次运行。所以我的过程实际上是:
- 增加项目名称 (Myproject_V1)。
- 编译
- 在 VBA 中删除对旧库的引用
- 添加对新库的引用。
- 在 VBA 中更改类名(设置 classLib = new Myproject_v1)
- 将 C# 库附加到 excel 流程中。
- 重新运行 VBA 模块。
这非常详尽且耗时。
有更好的方法吗?
解决方法
感谢响应者。最好的方法是在 C# 中生成单元测试,它会加载 excel 文件,然后在 Visual Studio 中针对它运行 C# 代码。
他们指出的第二件事,您可以重复使用相同的文件名,只需关闭excel,编译,打开excel。