シート名がシートのデータm_address
で ある場合m_addressLocal
、返された範囲オブジェクトのプロパティは次のようになります
"'my sheet''s data'!A1:B2"
他の API 呼び出しでそのまま使用すると、失敗します。
回避策は、range.address プロパティを直接変更できないため、上位層で文字列を置換することです。
私たちはこれを調査しましたが、ここにバグがあるとは確信していません。以下のコードは機能します。「他の API 呼び出しでそのまま使用すると失敗する」と言うとき、どの API 呼び出しについて言及していますか?
try {
await Excel.run(async (context) => {
const sheetName = `My sheet's data`;
// Preemptively delete any previous incarnation of this worksheet, if any
context.workbook.worksheets.getItemOrNullObject(sheetName).delete();
const sheetAdded = context.workbook.worksheets.add(sheetName);
const rangeB2 = sheetAdded.getRange("B2").load("address");
await context.sync();
console.log(rangeB2.address);
const refetchedRange = sheetAdded.getRange(rangeB2.address);
refetchedRange.format.fill.color = "orange";
const differentFetchedRange = sheetAdded.getRange("'My sheet''s data'!B3");
differentFetchedRange.format.fill.color = "purple";
sheetAdded.activate();
});
}
catch (error) {
OfficeHelpers.Utilities.log(error);
}
このスニペットは、新しいスクリプト ラボ ( https://aka.ms/getscriptlab ) で文字通り 5 回のクリックで実際に試すことができます。Script Lab アドイン (無料) をインストールし、ナビゲーション メニューで [インポート] を選択して、次の GIST URL を使用します: https://gist.github.com/Zlatkovsky/bd5e82a3cf6da021cc1af13dddebba1b。Script Lab へのスニペットのインポートに関する詳細情報を参照してください。