在自定义xll函数上执行Excel4Macro

时间:2010-06-04 14:12:31

标签: c# c++ excel vba excel-addins

我有一个C ++ .xll addIn for Excel。以下测试工作表函数适用于xll加载:

LPXLOPER __stdcall Test()
{
    return &xlstring("Yayage",true)
}

即。 = Test()在工作表中返回“Yayage”。 xlstring是我自己的自定义方法,它将字符串转换为excel字符串,并指定excel或xll是否负责释放其内存。

我打算使用VBA为2003及以前的版本生成“GUI伴侣”AddIn,并为2007年开始生成C#Excel 2007 AddIn项目。这些都适用于与Web服务通信的与版本无关的.xll。

C#和VBA都具有以下Excel功能:     Application.ExecuteExcel4Macro(串)     Application.Evaluate(串)     Application.Run(...)

这些工作正常(除了.Run,​​在C#中,想要获取32个参数)与正常工作表函数返回字符串,例如在VBA:

MsgBox Application.<Any above method>("=Trim(""    Billy   Bob       Fred    "")")

制作一个包含“Billy Bob Fred”的消息框

但是,我无法使用任何自定义工作表函数。将它们注册为命令而不是工作表函数也不起作用。

我尝试了不同风格的函数名称,包含和不包含= /(),以及我能想到的其他所有内容。

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:1)

你的xlstring是否返回临时对象的地址?