私は、ブックで指定された項目の範囲を読み込もうとしましたが、エラーを取得:作成されたすべての名前の範囲の作成された名前範囲が名前付きアイテムの範囲を取得できないのはなぜですか?
This operation is not permitted for the current object.
まず(名前のオブジェクトにadd()
メソッドを使用して)。
Excel.run(function (ctx) {
var sheet = ctx.workbook.names.add("MyRange", "Sheet1!A1B2");
return ctx.sync().then(function() {
console.log("range name added");
}).catch(function (e) {
console.log("Error Message is -> " + e.message);
})
});
これまでコードは非常に細かく動作します。今、私は既存の名前付き範囲の範囲を読みたいと思います。だから私のコードにいくつかの変更を加えました:
Excel.run(function (ctx) {
var sheet = ctx.workbook.names.add("MyRange", "Sheet1!A1B2");
return ctx.sync().then(function() {
console.log("range name added");
var range = ctx.workbook.names.getItem("MyRange").getRange();
range.load("address");
return ctx.sync().then(function() {
console.log(range.address);
});
});
}).catch(function (e) {
console.log("Error Message is -> " + e.message);
});
このコードを実行しようとすると、上記のエラーが発生します。 Office.js APIで述べたのと同じ方法を使用しました。
ありがとうございました。範囲に直接名前を追加するのではなく、範囲文字列に名前を追加するため、コードが自分のコードとどのように違うのかを教えてください。どうか説明してください。 –
Rangeの名前付きアイテムを作成する場合は、 'NameItemCollection.add(...) 'メソッドを呼び出すときに、** Rangeオブジェクト**を2番目のパラメータとして指定する必要があります。 Rangeオブジェクトの代わりに文字列を指定した場合、Office JSはその文字列をRangeオブジェクトとして解釈しないため、その名前付きアイテムで後で 'getRange()'メソッドを呼び出すとエラーがスローされます。 ( 'getRange()'メソッドは文字列に対して有効ではないため) –