在this link,它说
在开发和测试期间,您可以通过删除文件夹
<user>\AppData\Local\Microsoft\Office\16.0\Wef\CustomFunctions
手动清除计算机的注册元数据缓存。
然后我做了如下测试:
manifest.xml
的customfunctions.js
。关闭工作簿后,文件将自动保存在...\Wef\CustomFunctions\V1
中。customfunctions.js
替换Excel.Script.CustomFunctions["CONTOSO"]["ADD42"]
在我的服务器中手动修改Excel.Script.CustomFunctions["CONTOSO"]["ADD42NEW"]
。=contoso.
之后,IntelliSense向我显示contoso.add42
而不是add42new
。进入=contoso.add42(5;4)
后,细胞显示#GETTING_DATA
并且不返回值。这是可以理解的,因为它适用于不再存在的功能。=2+3
,我们会看到工作簿被刷新,而#GETTING_DATA
变成了#NAME?
。而现在IntelliSense显示contoso.add42new
而不是contoso.add42
。总而言之,我认为可能存在一个错误:当我们打开工作簿时,IntelliSense应该提供当前customfunctions.js
中定义的自定义函数的更新列表。
实际上,理想的是工作簿中的自定义函数始终与customfunctions.js
中定义的内容保持一致。如果没有这个bug,今天我们仍然需要关闭一个工作簿并重新打开一个以获得更新。有没有人知道是否有一个解决方法,使打开的工作簿中的自定义函数保持动态更新?是否有一个刷新的触发器,允许我们在当前的customfunctions.js
打开的工作簿更新中创建自定义函数?
谢谢你的提问!正如您所发现的,自定义函数定义目前仅按需更新,而不是每个单独的文档打开事件。
我们在这方面收到了大量反馈,因此我们正在考虑对注册工作方式进行一些更改,以便IntelliSense / autocomplete中的函数列表在会话开始时而不是在会话中间更新。
我现在没有要分享的细节,但是在几个月内就要注意一些变化。