保持自定义函数与其源文件一致

问题描述 投票:1回答:1

this link,它说

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

然后我做了如下测试:

  1. 我在工作簿中加载了指向我服务器中原始manifest.xmlcustomfunctions.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

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

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

ms-office office-js custom-functions-excel
1个回答
0
投票

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

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

我现在没有要分享的细节,但是在几个月内就要注意一些变化。

© www.soinside.com 2019 - 2024. All rights reserved.