【发布时间】:2014-11-05 20:34:07
【问题描述】:
我有一个用 C# 编写的 GUI。它是控制寄存器映射的交互式按钮和文本网格。我想为该 GUI 创建一个 API 以在 Excel vba 中使用。我一直找不到任何示例或文档来说明如何创建这样的东西,但我以前使用过其他公司的对象库。
在尝试创建它时,我遇到了一些问题,即它只能在我的计算机上运行。此外,如果我移动到计算机上的另一个文件夹,它也会中断。
Excel vba 代码:
Sub Test()
Dim impclass As New ZZVISIBLE_FROM_EXCEL_CLASS
MsgBox impclass.DotNetMethod_SQR(5)
End Sub
C#库类代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace ZZVISIBLE_FROM_EXCEL_LIBRARY
{
public class ZZVISIBLE_FROM_EXCEL_CLASS
{
public Double DotNetMethod_SQR(Double input)
{
return input * input;
}
}
}
此基础示例使用 C# 库类对数字求平方,并使用 Excel VBA 选择数字 5。这是我以后想做的事情的基本框架,例如:
grid.writecell(22,1001)
grid.getcell(22)
grid.resetall()
grid.loadfile("C:\griddata\config_default")
一些用于制作这些对象库的参考资料,甚至它们的名称将是最有帮助的!谷歌搜索“C# 中的自定义 excel vba 引用”到目前为止没有任何用处,所以我决定在这里发帖寻求帮助。
另外,我在项目中已经足够早了,“你做错了,做这个”类型的答案也很受欢迎!
【问题讨论】:
-
你不能在 C# 中使用
Microsoft.Interop.Excel做同样的事情吗?你试过谷歌上使用 Interop 的例子吗? -
这是一个很棒的评论!不幸的是,我这样做的原因是为了保持与用 Excel VBA 编写的代码的兼容性。