【问题标题】:Excel VSTO 2016 - Show function arguments dialog for UDFExcel VSTO 2016 - 显示 UDF 的函数参数对话框
【发布时间】:2018-05-09 11:27:26
【问题描述】:

我有一个 XLL 库,其中包含在 Excel 中使用的 UDF。用户可以通过直接在单元格中输入 UDF 名称来使用 UDF,或者通过启动 函数向导对话框 并搜索特定的 UDF,然后将启动 函数参数对话框 用于该特定 UDF。

我现在正在尝试使用 MSVS2017/C#/Office-Interop/VSTO 创建一个 Ribbon,其中显示 Gallery Controls 和下拉菜单包含所有 UDF 作为项目的菜单。当用户单击下拉列表中的任何 UDF 项时,应该为该 UDF 显示 Function Arguments 对话框

如何使用 Office-Interop/C#/VSTO 显示特定 UDF 的函数参数对话框,甚至显示任何内置函数?

在进行了一些谷歌搜索后,我几乎没有找到关于该主题的信息。这个question 是正确的,但解决方案代码不起作用。

我在Office Interop namespaces 上找到了此文档,更准确地说,在不同的built-in dialogs 上找到了此文档。但是我在那里找不到关于 Function Arguments Dialog 的任何信息。

启动功能向导对话框似乎很容易。可以这样做:

Globals.ThisAddIn.Application.Dialogs[Excel.XlBuiltInDialog.xlDialogFunctionWizard].Show();

我希望您可以为任何具有类似调用的 UDF 打开函数参数对话框。 我是否必须放弃尝试 Office-Interop 并使用Excel C Api 呼叫?还是我应该尝试一些 3rd 方工具,例如 Excel-DNAAdd-in Express

【问题讨论】:

  • @CindyMeister 我已经改进了问题,请删除暂停。
  • 我不能自己重新打开它,就像我不能自己关闭它一样。但我已经投了票,这将把它放在队列中......

标签: c# excel vsto office-interop xll


【解决方案1】:

终于找到解决办法了!在调用 函数对话框向导 之前,您必须使用有效的 UDF 公式 填充 活动单元格,然后它会显示 函数参数对话

这个VBA code给了我一个提示。

所以下面的 C# 代码可以工作:

Globals.ThisAddIn.Application.ActiveCell.Formula = "=zAirAtmTPFC()";
Globals.ThisAddIn.Application.Dialogs[Excel.XlBuiltInDialog.xlDialogFunctionWizard].Show();

zAirAtmTPFC() 是 XLL 中的 UDF 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多