我刚刚创建了这个小小的 Office 脚本:
async function main(context: Excel.RequestContext) {
context.workbook.names.getItem("Newname").delete;
}
当前工作簿中存在范围名称“新名称”,代码运行没有错误,但名称没有被删除。为什么?如果我不允许删除范围名称,我会收到运行时错误。
我刚刚创建了这个小小的 Office 脚本:
async function main(context: Excel.RequestContext) {
context.workbook.names.getItem("Newname").delete;
}
当前工作簿中存在范围名称“新名称”,代码运行没有错误,但名称没有被删除。为什么?如果我不允许删除范围名称,我会收到运行时错误。
我认为它错过了括号:
context.workbook.names.getItem("Newname").delete();
我只是按照这个要点试过了,你可以试试。https://gist.github.com/lumine2008/f55a6265a93b421112de210b22e9a48a
delete
是一种方法。在 JavaScript 中,一个方法需要打开和关闭括号,即使没有要传递的参数:
context.workbook.names.getItem("Newname").delete();
我的测试证实了这一点。此外,代码应包括await.context.sync();
重要的是要意识到 JavaScript 支持将方法分配给变量(对象),类似于将函数分配给 Excel Name
,通过省略括号。然后可以在某个时候使用该对象来执行该方法。这就是省略括号时不会引发错误的原因。
例子:
const deleteNewName = context.workbook.names.getItem("Newname").delete;
deleteNewName();
(感谢 Lumpenstein 在评论中提供的有关 JS 的信息。)