Excel JavaScript API - Как выбрать ячейки до конца заполненного диапазона - PullRequest
0 голосов
/ 01 апреля 2019

Какой должна быть версия API JavaScript для VBA:

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

По сути, я хочу сделать то же самое, что делает ctrl+down arrow keycombo.Расширить текущий выбор до последней ячейки со значением.

1 Ответ

0 голосов
/ 06 апреля 2019

Мне пришлось написать пользовательскую функцию. Вот. Но я надеялся на наличие нативного 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;
};

И оно все еще несовершенно, поскольку пересекает только тысячу клеток вниз. Хорошо для моих нужд, но не полное решение.

...