如何在Office JS中使用Excel.RangeAreas?

问题描述 投票:0回答:1

我试图在Scriptlab中使用RangeAreas类来一次从多个范围中获取一些信息,但我不能让它工作。

$("#run").click(() => tryCatch(run));

async function run() {

  await Excel.run(async (context) => {
    var sheet = context.workbook.worksheets.getActiveWorksheet();
    var rangeAreas = sheet.getRanges("F3:F5, H3:H5");

    rangeAreas.load("address");

    await context.sync();

    console.log(rangeAreas.address);
  });
}

/** Default helper for invoking an action and handling errors. */
async function tryCatch(callback) {
  try {
    await callback();
  } catch (error) {
    // Note: In a production add-in, you'd want to notify the user through your add-in's UI.
    console.error(error);
  }
}

这是我在Scriptlab控制台得到的错误信息:

c {name: "RichApi.Error", code: "InvalidArgument", traceMessages: Array[0], innerError: null, debugInfo: Object…}
 name: "RichApi.Error"
 code: "InvalidArgument"
 traceMessages: Array[0]
 innerError: null
▶debugInfo: Object
 code: "InvalidArgument"
 message: "L’argument est manquant ou non valide, ou a un format incorrect."
 toString: function ()
 errorLocation: "Worksheet.getRanges"
 statement: "var ranges=activeWorksheet.getRanges(...);"
▶surroundingStatements: Array[8]
 0: "var workbook=context.workbook;"
 1: "var worksheets=workbook.worksheets;"
 2: "var activeWorksheet=worksheets.getActiveWorksheet();"
 3: "// >>>>>"
 4: "var ranges=activeWorksheet.getRanges(...);"
 5: "// <<<<<"
 6: "// Instantiate {ranges}"
 7: "ranges.load(["address"]);"
▶fullStatements: Array[6]
 line: 24
 column: 243520
 sourceURL: "https://appsforoffice.microsoft.com/lib/1/hosted/excel-mac-16.00.js"

我肯定我在某个地方犯了一个愚蠢的错误 但我就是找不到错误的地方,这让我很抓狂 任何帮助都是非常感激的。

excel office-js scriptlab
1个回答
1
投票

你的代码在我这边运行得很完美。你的系统语言是法语吗? 有一个已知的问题是关于范围的分隔符,分隔符会根据系统的本地情况而改变。

所以我猜测在法语中它可能使用";",你可以试试下面的代码吗?

var rangeAreas = sheet.getRanges("F3:F5; H3:H5");
© www.soinside.com 2019 - 2024. All rights reserved.