Скрипт копирует данные строки на другой лист, работает только частично - PullRequest
0 голосов
/ 10 мая 2019

У меня есть скрипт для перемещения строки данных в электронной таблице расписания сотрудников (благодаря помощи Reddit в Sheets), он работает, но перестал находить одну часть данных.

Таблица здесь: https://docs.google.com/spreadsheets/d/10yLJ_NyFasGhlRt2LsXO2CC804Zf5JLvwUisgytQOhM/edit?usp=sharing

Как только для столбца 63 «Закончено» установлено значение «ДА», он копирует данные (только из обязательных столбцов), находит имя сотрудника на основе недели, помеченной «x», и перемещает ее в «Готовый лист».

Код, который раньше работал полностью, но теперь он не находит «х» и не захватывает имя сотрудника. Мне приходилось обновлять номера столбцов в скрипте несколько раз, так как у нас появилось больше сотрудников, возможно, я это сломал, делая это.

(Любые пустые столбцы содержат данные в моей реальной электронной таблице, я просто оставил их здесь пустыми, поскольку они не относятся к сценарию)

Буду очень признателен за любые советы! Спасибо!

[Полный код в таблице]

  if (ecol == 63 && ssh.getName() == 'SCHEDULE' && rng.getValue() == 'YES') { //if Schedule!63 is YES
    var data = []; //output data
    var rowN = rng.getRow();
    var rowV = ssh.getRange(rowN,1,1,63).getDisplayValues();
    var row = rowV[0]; //get edited row
    var colX = row.indexOf('x')+1; //find X
    var offset = colX - ((colX-2) % 5 ) // offset to the first column 
    var emp = ssh.getRange(1,offset).getValue(); //get employee name
    var dd = Utilities.formatDate(new Date(), "GMT+10", "dd/MM/yyyy") //generate date finished
    data.push(row[1],row[2],row[3],dd,row[5],emp); //get row
    dsh.appendRow(data); //move row
    ssh.deleteRow(e.range.rowStart); //delete from schedule
  }
}

1 Ответ

0 голосов
/ 10 мая 2019

Я считаю, что var offset = colX - ((colX-2) % 5 ) // offset to the first column

должно быть таким var offset = colX - ((colX+2) % 5 ) // offset to the first column

Это то, что заставляет вас не находить сотрудников, потому что сотрудники находятся в группе слияний, которая всегда помещает ихзначение в самой левой ячейке для горизонтального слияния.

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