Как исправить ошибку «getNextDataCell при следующей пропущенной ячейке» в скрипте Google - PullRequest
0 голосов
/ 04 июля 2019

Итак, вот странная ситуация, когда я использовал этот код, и выбор был на A4, и после того, как я использовал метод getNextDataCell (NEXT), он выбрал C4 вместо B4 ????

Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).setBackground('#000000').setFontColor('#ff0000');

И фото после казни: https://ibb.co/kBMf8Ff

Вот мой полный код:

function Macro3() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var Testsheet = spreadsheet.getSheetByName('Test');
  var data = Testsheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++){
    if (data[i][0] == 'Harpeth Valley Utilities District'){
      var temp = i + 1;
      Testsheet.getRange('A'+temp).activate();
      Testsheet.getCurrentCell().setBackground('#000000').setFontColor('#ff0000');
      Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).setBackground('#000000').setFontColor('#ff0000');
      Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).setBackground('#000000').setFontColor('#ff0000');
    }
  }
};

1 Ответ

0 голосов
/ 05 июля 2019

Проблема:

Официальный документ getNextDataCell(direction) гласит следующее.

Начиная с ячейки в первом столбце и строке диапазона, возвращает следующую ячейку в заданном направлении, являющемся краем непрерывного диапазона ячеек с данными в них, или ячейкой на краю электронной таблицы в этом направление. Это эквивалентно вводу Ctrl + [клавиша со стрелкой] в редакторе.

Из вашего общего изображения, край - это столбец "C". При этом цвет ячейки "C4" изменяется.

Когда вы хотите изменить цвет "B4" вместо "C4", как модификация, как насчет этой модификации? Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Модифицированный скрипт:

От:
Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.NEXT).setBackground('#000000').setFontColor('#ff0000');
Testsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).setBackground('#000000').setFontColor('#ff0000');
Для того, чтобы:
Testsheet.getCurrentCell().offset(0, 1).setBackground('#000000').setFontColor('#ff0000');

Ссылки:

Если я неправильно понял ваш вопрос, а это не то направление, которое вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...