javascript - 调用 Binding.getRange() 时出现 InvalidArgument 错误

标签 javascript excel office-js

当我在 Binding 上调用 getRange() 方法时对象,我收到以下错误:

code: "InvalidArgument",
errorLocation: "Binding.getRange",
message: "The argument is invalid or missing or has an incorrect format."

这看起来很荒谬,因为根据上面链接的 API,该方法没有任何参数。

即使是包含文档的 getRange() 示例代码的新项目也会对我造成此错误(当然是在我添加绑定(bind)之后):

Excel.run(function (ctx) { 
    var binding = ctx.workbook.bindings.getItemAt(0);
    var range = binding.getRange();
    range.load('cellCount');
    return ctx.sync().then(function() {
        console.log(range.cellCount);
    });
}).catch(function(error) {
        console.log("Error: " + error);
        if (error instanceof OfficeExtension.Error) {
            console.log("Debug info: " + JSON.stringify(error.debugInfo));
        }
});

这里是否发生了一些看似无关的问题?

我在 Windows 10 上运行 Office Pro Plus 2016,版本 1709(内部版本 8528.2139),它支持 ExcelApi 1.6。


更新

我在尝试使用 bindings 添加绑定(bind)时也看到此错误.add().addFromNamedItem() 像这样:

ctx.workbook.bindings.addFromNamedItem("Name", Office.CoercionType.Text, "Name");

产量:

code: "InvalidArgument",
errorLocation: "BindingCollection.addFromNamedItem",
message: "The argument is invalid or missing or has an incorrect format."

我的旧代码使用共享 API 方法 addFromNamedItemAsync()然而,成功地添加了一个没有问题的绑定(bind)。

我将继续进行试验,以确定这种情况是否发生在 ExcelApi 中的所有绑定(bind)相关方法或任何非绑定(bind)相关或共享 API 方法上。

最佳答案

您以错误的方式添加了绑定(bind)。 首先,地址应包含工作表名称,因为绑定(bind)集合在工作簿上。所以,它不知道你指的是哪个范围。其次,您应该创建 Range 类型的绑定(bind)。最后,使用 getItemAt 是有限制的,因为位置可以根据删除操作而改变。 getItem with key 是获取绑定(bind)对象的更好方法。

...
ctx.workbook.bindings.add("Sheet1!D3", "Range", "Binding2");
await ctx.sync();
var binding = ctx.workbook.bindings.getItem("Binding2");
var range = binding.getRange();
range.load('cellCount');
return ctx.sync().then(function () {
     console.log(range.cellCount);
});
...

关于javascript - 调用 Binding.getRange() 时出现 InvalidArgument 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284582/

相关文章:

javascript - 使用 html/javascript/mongodb 将图像存储在服务器上

javascript - 仅委托(delegate)选定的选项?

excel - 查找 `find` 方法是否在 Excel VBA 中返回 `nothing`

javascript/jquery 语法差异,声明新变量

python - 循环遍历多个 Excel 文件以使用 pandas 修改和重写原始文件

excel - 需要将 Cobol 数据文件转换为 CSV、Excel

ms-office - Excel Online 中任务 Pane 之间的高度差异

ms-word - 使用 office.js 在 Word 中插入评论

office-js - Office.js : ItemNotFound: The requested resource doesn't exist

Javascript 将包含文件中的数据发布到父级