Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Javascript 在Office Web上运行Excel加载项时出现名称范围问题_Javascript_Excel_Office Js_Add In - Fatal编程技术网

Javascript 在Office Web上运行Excel加载项时出现名称范围问题

Javascript 在Office Web上运行Excel加载项时出现名称范围问题,javascript,excel,office-js,add-in,Javascript,Excel,Office Js,Add In,在Excel外接程序中添加命名范围时,我偶尔会遇到ItemAlreadyExists异常,而且只有在浏览器(而不是桌面)中运行Excel时才会出现此异常 代码非常简单。对于每个工作表,我添加一个名为“rulescape_id”的命名范围。这应该是工作表的范围,按照 例外情况详情: {"code":"ItemAlreadyExists","message":"A resource with the same name or identifier already exists.","errorLoc

在Excel外接程序中添加命名范围时,我偶尔会遇到ItemAlreadyExists异常,而且只有在浏览器(而不是桌面)中运行Excel时才会出现此异常

代码非常简单。对于每个工作表,我添加一个名为“rulescape_id”的命名范围。这应该是工作表的范围,按照

例外情况详情:

{"code":"ItemAlreadyExists","message":"A resource with the same name or identifier already exists.","errorLocation":"NamedItemCollection.add","statement":"var add=names.add(...);","surroundingStatements":["...","// Instantiate {rowsBelow}","var workbook=context.workbook;","var worksheets=workbook.worksheets;","var worksheet=worksheets.getItem(...) /* originally getItem(...) */;","var names=worksheet.names;","// >>>>>","var add=names.add(...);","// <<<<<","var v1=context.workbook._getObjectByReferenceId(\"R!{210136D6-71B5-4BF2-BEA0-9CBDA9AA57D1}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(...) */;","var rowsBelow1=v1.getRowsBelow(...);","// Instantiate {rowsBelow1}","var worksheet1=worksheets.getItem(...) /* originally getItem(...) */;","var names1=worksheet1.names;","..."],"fullStatements":["var v=context.workbook._getObjectByReferenceId(\"R!{55F88602-7FD7-4AD4-A8D6-1B8578F08275}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(\"_header\", {\"completeMatch\":true,\"matchCase\":true,\"searchDirection\":\"Forward\"}) */;","var rowsBelow=v.getRowsBelow(106);","// Instantiate {rowsBelow}","var workbook=context.workbook;","var worksheets=workbook.worksheets;","var worksheet=worksheets.getItem(\"{00000000-0001-0000-1000-000000000000}\") /* originally getItem(\"transaction fee data\") */;","var names=worksheet.names;","var add=names.add(\"rulescape_ids\", rowsBelow, undefined);","var v1=context.workbook._getObjectByReferenceId(\"R!{210136D6-71B5-4BF2-BEA0-9CBDA9AA57D1}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(\"_header\", {\"completeMatch\":true,\"matchCase\":true,\"searchDirection\":\"Forward\"}) */;","var rowsBelow1=v1.getRowsBelow(112);","// Instantiate {rowsBelow1}","var worksheet1=worksheets.getItem(\"{00000000-0001-0000-0B00-000000000000}\") /* originally getItem(\"loan data\") */;","var names1=worksheet1.names;","var add1=names1.add(\"rulescape_ids\", rowsBelow1, undefined);","var v2=context.workbook._getObjectByReferenceId(\"R!{C1D50634-EBC2-4DDB-9D0F-494CB24980D8}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(\"_header\", {\"completeMatch\":true,\"matchCase\":true,\"searchDirection\":\"Forward\"}) */;"...

{“code”:“ItemAlreadyExists”,“message”:“已存在具有相同名称或标识符的资源”。,“errorLocation”:“NamedItemCollection.add”,“语句”:“var add=names.add(…);”,“surroundingStatements”:[“…”,“//实例化{rowsBelow}”,“var workbook=context.workbook;”,,“var worksheets=workbook.worksheets;”,“var工作表=工作表.getItem(…)/*原始getItem(…)*/;”,“var名称=工作表.names;”,“/>>”,“var添加=名称.添加(…);”,”//我发现您的代码存在一个问题,即它没有正确使用
getItemOrNullObject
方法。在测试空值之前,您必须在调用此方法后执行context.sync。此外,您也不会使用
if(namedItemRange)
测试空值。您可以使用
if(namedItemRange.isNullObject)进行测试
。有关详细信息,请参阅。我不知道这是否能解决您的问题,但您仍然需要进行修复,而且可能会停止错误。

谢谢您的回复,Rick。在实施您的建议后,我仍然会收到错误。我是否还需要在namedRangeItem.delete()之后和sheet.names.add(…)之前进行同步?请提供更多的代码。我们需要查看您的
是什么。此外,我们还需要查看整个
Excel.run()
。感谢您提供查看代码的机会。代码跨越多个稍大的类。我将尝试将其精简到本质并发送摘录。
{"code":"ItemAlreadyExists","message":"A resource with the same name or identifier already exists.","errorLocation":"NamedItemCollection.add","statement":"var add=names.add(...);","surroundingStatements":["...","// Instantiate {rowsBelow}","var workbook=context.workbook;","var worksheets=workbook.worksheets;","var worksheet=worksheets.getItem(...) /* originally getItem(...) */;","var names=worksheet.names;","// >>>>>","var add=names.add(...);","// <<<<<","var v1=context.workbook._getObjectByReferenceId(\"R!{210136D6-71B5-4BF2-BEA0-9CBDA9AA57D1}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(...) */;","var rowsBelow1=v1.getRowsBelow(...);","// Instantiate {rowsBelow1}","var worksheet1=worksheets.getItem(...) /* originally getItem(...) */;","var names1=worksheet1.names;","..."],"fullStatements":["var v=context.workbook._getObjectByReferenceId(\"R!{55F88602-7FD7-4AD4-A8D6-1B8578F08275}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(\"_header\", {\"completeMatch\":true,\"matchCase\":true,\"searchDirection\":\"Forward\"}) */;","var rowsBelow=v.getRowsBelow(106);","// Instantiate {rowsBelow}","var workbook=context.workbook;","var worksheets=workbook.worksheets;","var worksheet=worksheets.getItem(\"{00000000-0001-0000-1000-000000000000}\") /* originally getItem(\"transaction fee data\") */;","var names=worksheet.names;","var add=names.add(\"rulescape_ids\", rowsBelow, undefined);","var v1=context.workbook._getObjectByReferenceId(\"R!{210136D6-71B5-4BF2-BEA0-9CBDA9AA57D1}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(\"_header\", {\"completeMatch\":true,\"matchCase\":true,\"searchDirection\":\"Forward\"}) */;","var rowsBelow1=v1.getRowsBelow(112);","// Instantiate {rowsBelow1}","var worksheet1=worksheets.getItem(\"{00000000-0001-0000-0B00-000000000000}\") /* originally getItem(\"loan data\") */;","var names1=worksheet1.names;","var add1=names1.add(\"rulescape_ids\", rowsBelow1, undefined);","var v2=context.workbook._getObjectByReferenceId(\"R!{C1D50634-EBC2-4DDB-9D0F-494CB24980D8}!{C06F41B8-B778-4030-8D38-51BBA2FD9FAF}\") /* originally find(\"_header\", {\"completeMatch\":true,\"matchCase\":true,\"searchDirection\":\"Forward\"}) */;"...