我在 C# 中定义了一个 UDF,它将 SQL 查询的结果返回到动态数组。这个公式运行得很好并且可以返回值。您可以在公式栏中编辑公式,但使用“插入公式”对话框(Fx 按钮)编辑公式时,Excel 会崩溃。我相信这是因为公式编辑器正在尝试在您更改参数时评估参数。这会产生问题,因为在编辑公式时每次更改参数时都需要执行 SQL 查询。
似乎没有办法关闭对话框中结果的“预览”。有没有办法解决这个问题,因为我不希望用户尝试使用插入公式编辑器编辑公式时导致 Excel 崩溃?
我尝试了一个简单的 VBA UDF 函数,该函数创建一个动态数组,并且还可以在编辑公式时预览创建的数组
因为您使用的是 C#,所以我认为使用 Excel.DNA 有一个简单的解决方案。
Excel DNA 有一个静态方法标志来检测函数向导是否打开 - 我用它来防止执行。
if (ExcelDnaUtil.IsInFunctionWizard()) return 0;