无法从定义的名称获取范围
Can't get range from a defined name
Excel 2016 (Office 365) 32 位,16.0.6965.2115,Visual Studio 14.0.25425.01 更新 3
我很确定下面的语句曾经有效,但现在不再有效了:
var range = ctx.workbook.names.getItem("Countries").getRange();
我收到一条错误消息,指出不支持 getRange 方法,但它应该按照记录 here 得到支持。
我做错了什么?
--- 编辑:这是我正在使用的代码 ---
function paintRange() {
Excel.run(function (ctx) {
var range = ctx.workbook.names.getItem("Countries").getRange();
range.format.fill = "green";
return ctx.sync();
}).catch(function (error) {
app.showNotification("Error", error);
})
}
paintRange 附加到一个按钮。有一个名为 Countries 的全球范围定义名称。
除了我提到的错误之外,我没有更多关于错误的详细信息,我也尝试打开快速监视window以获取更多线索。
更新:问题已通过更新 CDN 得到解决。 您现在应该可以使用 namedItem.getRange()
。感谢您报告问题,并允许我们快速解决问题。
================
Felipe,看来你是对的。这绝对是一个错误。让我和合适的人谈谈,尽快解决这个问题。我会看看我们是否也可以加入一些流程来避免将来出现这种情况。
从即时变通的角度来看,有两个选择:
使用 BETA CDN(特别是如果它用于开发中的插件,而不是生产插件)。那URL就是:https://appsforoffice.microsoft.com/lib/beta/hosted/office.js
临时填充无意中删除的 getRange 功能。在 Office.initialize
中包含以下代码:
if (!Excel.NamedItem.prototype.getRange) {
Excel.NamedItem.prototype.getRange=function () {
return new Excel.Range(this.context,
OfficeExtension.ObjectPathFactory.createMethodObjectPath(
this.context, this, "GetRange",
OfficeExtension.OperationType.Read, [], false, true, null
)
);
};
}
#2 中的解决方法即使在功能恢复后也不应该造成伤害,但我 none-the-less 建议在我们解决问题后记下删除它。一旦我们修复了潜在的错误,我将更新此线程,希望在几周内(作为一个非常粗略的估计,等待任何可能延迟它的并发症)。
感谢您引起我们的注意——无论是单个错误,还是让回归到这个错误的潜在过程都没有引起注意。API。
Excel 2016 (Office 365) 32 位,16.0.6965.2115,Visual Studio 14.0.25425.01 更新 3 我很确定下面的语句曾经有效,但现在不再有效了:
var range = ctx.workbook.names.getItem("Countries").getRange();
我收到一条错误消息,指出不支持 getRange 方法,但它应该按照记录 here 得到支持。
我做错了什么?
--- 编辑:这是我正在使用的代码 ---
function paintRange() {
Excel.run(function (ctx) {
var range = ctx.workbook.names.getItem("Countries").getRange();
range.format.fill = "green";
return ctx.sync();
}).catch(function (error) {
app.showNotification("Error", error);
})
}
paintRange 附加到一个按钮。有一个名为 Countries 的全球范围定义名称。 除了我提到的错误之外,我没有更多关于错误的详细信息,我也尝试打开快速监视window以获取更多线索。
更新:问题已通过更新 CDN 得到解决。 您现在应该可以使用 namedItem.getRange()
。感谢您报告问题,并允许我们快速解决问题。
================
Felipe,看来你是对的。这绝对是一个错误。让我和合适的人谈谈,尽快解决这个问题。我会看看我们是否也可以加入一些流程来避免将来出现这种情况。
从即时变通的角度来看,有两个选择:
使用 BETA CDN(特别是如果它用于开发中的插件,而不是生产插件)。那URL就是:https://appsforoffice.microsoft.com/lib/beta/hosted/office.js
临时填充无意中删除的 getRange 功能。在
Office.initialize
中包含以下代码:if (!Excel.NamedItem.prototype.getRange) { Excel.NamedItem.prototype.getRange=function () { return new Excel.Range(this.context, OfficeExtension.ObjectPathFactory.createMethodObjectPath( this.context, this, "GetRange", OfficeExtension.OperationType.Read, [], false, true, null ) ); }; }
#2 中的解决方法即使在功能恢复后也不应该造成伤害,但我 none-the-less 建议在我们解决问题后记下删除它。一旦我们修复了潜在的错误,我将更新此线程,希望在几周内(作为一个非常粗略的估计,等待任何可能延迟它的并发症)。
感谢您引起我们的注意——无论是单个错误,还是让回归到这个错误的潜在过程都没有引起注意。API。