Excel JavaScript API-如何选择单元格直到填充范围结束

时间:2019-04-01 09:13:02

标签: javascript office-js excel-addins

什么是VBA的JavaScript API版本:

Range(ActiveCell, ActiveCell.End(xlDown)).Select

从本质上讲,我想做ctrl+down arrow键组合做的事情。将当前选择范围扩展到具有值的最后一个单元格。

1 个答案:

答案 0 :(得分:0)

我不得不编写一个自定义函数。这里是。但是我希望能够为这种经常使用的功能提供本机API。我认为这是最常用的。

export const get_nonempty_range_down = async (startingCell, context) => {
  const distanceLimit = 999;
  const rangeToTest = startingCell.getResizedRange(distanceLimit, 0);
  rangeToTest.load("values");
  await context.sync();

  const matrixValues = rangeToTest.values;
  let finalCellPosition = null;
  matrixValues.some((row, i) => {
    if (row[0] === "") {
      finalCellPosition = i - 1;
      return true;
    }
    return false;
  });

  const result = startingCell.getResizedRange(finalCellPosition, 0);
  // Debug
  // result.load("address");
  // await context.sync();
  // console.log(result.address);
  return result;
};

它仍然是不完美的,因为它仅向下遍历一千个单元格。可以满足我的需求,但不是完整的解决方案。