Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Office脚本,忽略删除范围名称,无错误_Excel_Office Js_Office Scripts - Fatal编程技术网

Excel Office脚本,忽略删除范围名称,无错误

Excel Office脚本,忽略删除范围名称,无错误,excel,office-js,office-scripts,Excel,Office Js,Office Scripts,我刚刚创建了这个小小的Office脚本: async function main(context: Excel.RequestContext) { context.workbook.names.getItem("Newname").delete; } 当前工作簿中存在区域名称“Newname”,代码运行时没有错误,但名称未被删除。为什么?如果不允许删除范围名称,我可能会收到一个运行时错误。我认为它遗漏了括号: context.workbook.names.getItem("Newnam

我刚刚创建了这个小小的Office脚本:

async function main(context: Excel.RequestContext) {
  context.workbook.names.getItem("Newname").delete;
}

当前工作簿中存在区域名称“Newname”,代码运行时没有错误,但名称未被删除。为什么?如果不允许删除范围名称,我可能会收到一个运行时错误。

我认为它遗漏了括号:

  context.workbook.names.getItem("Newname").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的信息。)