保持自定义函数与源文件

时间:2017-12-28 20:41:49

标签: ms-office office-js custom-functions-excel

this link中,它表示

  

在开发和测试期间,您可以通过删除文件夹<user>\AppData\Local\Microsoft\Office\16.0\Wef\CustomFunctio‌​ns来手动清除计算机的注册元数据缓存。

然后我按如下方式进行测试:

  1. 我在工作簿中加载了manifest.xml指向我服务器中的原始customfunctions.js。关闭工作簿后,文件将自动保存在...\Wef\CustomFunctio‌​ns\V1

  2. 我通过customfunctions.js替换Excel.Script.CustomFunctions["CONTOSO"]["ADD42"],在我的服务器中手动修改Excel.Script.CustomFunctions["CONTOSO"]["ADD42NEW"]

  3. 我在单元格中打开一个新工作簿,输入=contoso.后,IntelliSense会显示contoso.add42而不是add42new。输入=contoso.add42(5;4)后,单元格显示#GETTING_DATA并且不返回值。这是可以理解的,因为它适用于不再存在的功能。

  4. 如果我们点击另一个单元格并输入例如=2+3,我们会看到工作簿已刷新,#GETTING_DATA变为#NAME?。现在,IntelliSense显示contoso.add42new而不是contoso.add42

  5. 总而言之,我认为可能存在一个错误:当我们打开工作簿时,IntelliSense应该提供当前customfunctions.js中定义的自定义函数的更新列表。

    实际上,理想的是工作簿中的自定义函数始终与customfunctions.js中定义的内容保持一致。如果没有这个bug,今天我们仍然需要关闭一个工作簿并重新打开一个以获得更新。有没有人知道是否有一个解决方法,使打开的工作簿中的自定义函数保持动态更新?是否有一个刷新的触发器,允许我们在当前customfunctions.js的已打开的工作簿更新中创建自定义函数?

1 个答案:

答案 0 :(得分:0)

感谢您的提问!正如您所发现的,自定义函数定义目前仅按需更新,而不是每个单独的文档打开事件。

我们在这个领域收到了很多反馈,因此我们正在考虑对注册工作方式进行一些更改,以便IntelliSense / autocomplete中的函数列表在会话开始时而不是在会话开始时更新之一。

我现在没有要分享的详细信息,但请在几个月内留意一些变化。