我在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 - tools - reference中添加c#库(首先将库编译为类型库)。
这是有效的,我可以将库附加到Excel.exe进程并以这种方式调试。
然而,对于每个代码更改,我需要重新编译,重新导入到VBA,并再次运行。
我的过程:
- 增加项目名称(Myproject_V1)
- 删除VBA中对旧库的引用
- 添加对新库的引用。
- 在VBA中修改类名(set classLib = new Myproject_v1)
- 将c#库附加到excel进程中。
- 重新运行VBA模块
有更好的方法吗?
感谢响应者。最好的方法是用c#生成单元测试,它将加载excel文件,然后在visual studio中对其运行c#代码。
第二件事,正如他们指出的,你可以重复使用相同的文件名,只要关闭excel,编译,打开excel。