我正在尝试对 xll 形式的 Excel 加载项自动进行一些测试。我在加载 xll 时遇到了一些问题。我正在用 C# 编写它,我的代码如下所示:
using Microsoft.Office.Interop.Excel;
Application xlApp;
Workbook xlWorkBook;
Worksheet xlWorkSheet;
// create application, open workbook, etc ...
// now try to register xll
xlApp.RegisterXLL("C:\\SomePath\\Whatever.xll");
但是,这总是返回 false。当我通过录制宏手动加载 xll 时,我尝试查看 Excel 偷偷做了什么。宏看起来像:
Sub Macro1()
ChDir "C:\SomePath"
Application.RegisterXLL Filename:= _
"C:\SomePath\Whatever.xll"
End Sub
唯一的区别似乎是 ChDir,所以我将代码更改为:
FileSystem.ChDir("C:\\SomePath");
xlApp.RegisterXLL("C:\\SomePath\\Whatever.xll");
但它仍然不起作用。另一个奇怪的事情是,当我在 RegisterXLL 行之前放置一个断点并首先手动加载 xll 时,RegisterXLL 方法将返回 true。但否则,它将返回 false。