问题标签 [custom-functions-excel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ms-office - 开发自定义函数时可以将文件保存在本地吗?
我正在关注此链接以尝试自定义功能。
首先我把customfunctions.js
andcustomfunctions.html
放在我的本地文件夹中,然后https://<INSERT-URL-HERE>
在清单文件中用它们的路径替换:我试过\\SOFTTIMUR9FDC\Users\SoftTimur\tmp\EXCEL-CUSTOM-FUNCTIONS
and ,但我在 Excel\\Mac\Home\tmp\EXCEL-CUSTOM-FUNCTIONS\
中看不到任何应用程序。SHARED FOLDER
然后,我把这两个文件放在一个网站上,然后https://<INSERT-URL-HERE>
在清单文件中用它们的 https 地址替换。现在,它起作用了;SHARED FOLDER
我可以在 Excel 中看到应用程序,并且自定义函数有效。
那么是预期的吗?换句话说,当我们测试自定义函数时,我们无法将这些文件保存在 LOCAL 中;我们必须将它们保存在网站中吗?
PS:当我们开发一个普通的excel插件时,将源文件保存在本地是没有问题的。
ms-office - 同时拥有自定义功能和任务窗格
我正在关注此链接以尝试自定义功能。以下清单确实启用了自定义功能:
现在,我想知道是否可以同时拥有自定义功能和任务窗格。所以我<body>this is the body</body>
在https://www.myweb.com/customfunctions.html
. 但是,重新加载加载项不会显示任务窗格。
谁能告诉我是否可以同时拥有自定义功能和任务窗格?我应该修改什么来启用它?
编辑 1:更改xsi:type="VersionOverridesV1_0"
为xsi:type="TaskPaneApp"
确实会打开任务窗格,但是当我们尝试自定义功能时,会出现错误“我们无法启动此加载项,因为它没有正确设置”。
所以我仍在寻找合适的解决方案。
ms-office - 使自定义函数与其源文件保持一致
在这个链接中,它说
在开发和测试期间,您可以通过删除文件夹来手动清除计算机的注册元数据缓存
<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"]
我打开一个新工作簿,在一个单元格中,在 enter 之后
=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
. 如果没有这个错误,今天我们仍然需要关闭工作簿并重新打开工作簿才能更新。有谁知道是否有一种解决方法可以使打开的工作簿中的自定义函数保持动态更新?是否有一个令人耳目一新的触发器,允许我们在打开的工作簿中从当前更新自定义函数customfunctions.js
?
ms-office - 提交具有自定义功能的加载项
在这个文档中,提到了
Developer Preview 尚不支持以下功能。
……
将加载项发布到使用自定义函数的 Office 应用商店或 Office 365 集中部署。
我只是想确保这意味着目前我们无法向 Office Store 提交任何具有自定义功能的加载项;我们能做的只是在内部部署带有自定义功能的插件,对吧?
office-js - 异步 customFunctions 在启动时抛出意外的消息类型
我有一个 CustomFunctions javascript,它可以与同步函数完美配合,但是一旦我尝试使用 Async 函数,我就会得到:“
https://appsforoffice.microsoft.com/lib/beta/hosted/excel-win32-16.01.js 0x800a139e第 21 行第 707859 列未处理的异常 - Der opstod en JavaScript-kørselsfejl:意外消息类型
“这发生在对我的 js 文件调用任何 javascript 代码之前。消息类型是 1002,因此在 excel-win-16.01.js 中指定位置的 javascript 中,当然会抛出错误:”
if(i[t].messageType===1001)u.push(i[t]);else throw OfficeExtension.Utility.createRuntimeError(st.generalException,"意外消息类型","
该函数的 json 描述为:
JS代码:
我所有的异步自定义函数都失败了!侧边栏异步函数和同步函数一样工作。
excel - 如何动态更新双引号中的单元格引用?
我正在使用我在此处找到的自定义函数根据后面单元格中的新信息追溯设置其他单元格中的值。但是,问题是 SetCellValue 的输入是引号中的单元格引用,如下所示:
我需要一种方法,可以将引号中的引用(本例中为 G3)更改为我需要使用的任何单元格。我尝试使用不同的逻辑测试和连接无济于事。我还将处理大量数据,因此手动更改引用是非常不可行的。有任何想法吗?
excel - 将 excel 自定义函数添加到现有的 excel 加载项 - Javascript Api
我有一个现有的带有 UI 的 excel 插件(使用 react),我想向它添加一些自定义函数。当我单独添加加载项时,两者都可以正常工作,但是当我尝试合并它们时,自定义函数不会出现。
我假设我的问题在清单上,但我不确定它是什么:我添加了自定义函数扩展点,将自定义函数位添加到资源 Urls 和 ShortStrings 并将 cf 的 html 源位置替换为任务窗格 html。
这是我的清单:
这是两个加载项的html页面片段: https ://i.stack.imgur.com/PZqcG.png
excel - 在 Excel 中创建自定义函数(预览版)
我们有 Microsoft Office 365 ProPlus 订阅。版本 1806(内部版本 10228.20021 即点即用)每月频道(定向)。我已经从https://github.com/OfficeDev/Excel-Custom-Functions下载了自定义函数示例并将其部署在我的 IIS 中。我已经在所有四个地方相应地更改了本地主机。创建了清单文件。我已将该清单共享给我的名字。现在可以在 Office 加载项共享文件夹中看到“自定义函数示例”,但是当我尝试在我的 excel 中键入 =Contoso 时,自定义函数没有出现。需要帮助。
excel - Excel 自定义功能不适用于工作表
我对编写 excel 自定义函数很陌生,我遇到了一个奇怪的行为,在搜索网络时似乎无法找到解释(尽管信息量当然很大)。请多多包涵。
这是一个演示,它至少显示了一些问题:
此函数查找具有非空白单元格的区域中的第一列(区域中没有非空白单元格的结果为 -1)并且只要该区域与包含该函数rng
的公式位于同一工作表上,它就可以正常工作。mycustomfn_demo
这是包含公式和范围的表 1:
但是,如果它们在不同的工作表上,就会发生奇怪的事情这显示工作表 2(范围仍在工作表 1 中):
在这种情况下(但不是在其他情况下)引用表 1 中的公式单元格会给出正确的结果(同样,表 2):
这是预期的行为,还是错误的结果?我在 OSX High Sierra 10.13.5 下使用 Office 2016 for Mac,Excel 版本为 15.23。
我应该补充一点,在更复杂的情况下,引用另一个工作表中的自定义公式结果会删除公式单元格本身的结果。然后可以通过删除该单元格然后选择撤消来恢复它。