如何使用 Excel 插件在 Excel 2007 中使用 VBA 函数的自动完成功能

如何使用 Excel 插件在 Excel 2007 中使用 VBA 函数的自动完成功能

(克隆自关于 SO 的问题) 我在 VBA 中创建了一个函数。我希望 Excel 2007 在单元格的 Excel 中写入此函数时显示自动完成功能。详细信息如下 在此处输入图片描述

如何使用 Excel 插件 (.xlam) 在 Excel 2007 中使用 VBA 函数的自动完成功能?

附言:

在 Excel 2010 中,自动完成功能有效

在 Excel 2007 中,使用 Excel 宏启用工作表 (.xlsm),自动完成功能可以正常工作。测试文件这里

但是,在带有 Excel 插件 (.xlam) 的 Excel 2007 中,自动完成功能不起作用。测试文件这里

答案1

根据 Sean Cheshire 与 Michaels 的回答的链接:

“我在 JKP 应用程序开发服务上找到了一个由 Laurent Longre 最初发现的示例。下面解释了一个注意事项:

这种技巧方法的缺点是,实际上需要在所使用的 dll 中重新注册一个函数,而任何程序都可能使用该函数。

http://www.jkp-ads.com/Articles/RegisterUDF01.asp

此解决方案仅注册/取消注册 UDF,但用户仍必须将工作簿保存为 .xlam 并安装插件。我使用以下代码自动将当前工作簿安装为 Excel 插件(如果您要更新插件,则需要添加一些错误捕获以确定插件是否已安装)。

'将当前工作簿保存为 .xlam 文件
sFile = Application.LibraryPath & "\" & "name_of_addin" & ".xlam"
ThisWorkbook.SaveAs sFile, 55
ThisWorkbook.IsAddin = True

'添加临时工作簿
工作簿.添加

'安装插件
设置 oAddin = AddIns.Add(sFile , False)
oAddin.Installed = True

'关闭临时工作簿
Workbooks(Workbooks.Count).Close
MsgBox ("安装成功。请关闭 Excel 并重新启动。")

'关闭工作簿而不保存
工作簿(sFirstFile).关闭 False

该链接仍然有效。

相关内容