У меня возникли проблемы с копированием строки с одной вкладки в электронной таблице и копированием в другую

#google-apps-script #spreadsheet

#google-apps-script #электронная таблица

Вопрос:

Я новичок, и мне нужна помощь со скриптом электронной таблицы Google.

Когда я нажимаю на флажок на ГЛАВНОЙ вкладке, я хочу скопировать строку (столбцы A, B и C) и вставить ее на вкладку «ЗАВЕРШЕНО», а после этого удалить данные из строки, которую я нажал на ГЛАВНОЙ вкладке (только в столбцах B и C), и отменить выборустановите флажок на ГЛАВНОЙ вкладке.

Кто-нибудь может мне помочь?

Вот ссылка на мою общую электронную таблицу

Здесь скрипт:

 function onEdit(event) {
  // assumes source data in sheet named main
  // target sheet of move to named Completed
  // getColumn with check-boxes is currently set to column 4 or D
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getActiveSheet();
  var r = s.getActiveRange();

  if(s.getName() == "main" amp;amp; r.getColumn() == 4 amp;amp; r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Completed");
    var target = targetSheet.getRange(targetSheet.getLastRow()   1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  } else if(s.getName() == "Completed" amp;amp; r.getColumn() == 4 amp;amp; r.getValue() == false) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("main");
    var target = targetSheet.getRange(targetSheet.getLastRow()   1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}
 

Комментарии:

1. Когда я увидел вашу общую электронную таблицу, на листе «Завершено» есть столбец «D». Но в вашем вопросе вы говорите, что хотите скопировать только столбцы A, B и C из «main» в «Completed», и я не могу понять столбец «D» в «Completed». И примерно delete the data from the line I clicked on the MAIN tab (only in column B and C) and deselect the check box on the MAIN tab. , в этом случае столбцы «B» и «C» пусты. При этом условии, когда флажок установлен, вы хотите скопировать строку, содержащую пустые значения? В то время, откуда берется флажок на листе «Завершено»?

2. И, когда я увидел ваш «Заполненный» лист, я нашел Un-check a box to move it back to “main” sheet and delete it from this sheet. . Вы хотите добавить строку и удалить всю строку? К сожалению, я не могу понять, что вы хотите сделать. Я прошу прощения за мои плохие знания английского языка. Могу я спросить вас о деталях вашей текущей проблемы и вашей цели?

3. @Tanaike: на основном листе содержится 3 набора для просмотра. Когда пользователь устанавливает флажок в столбце D, удалите строку с основного листа и добавьте строку на заполненный лист, оставив флажок установленным. Если пользователь снимает флажок в столбце D заполненного листа, удалите строку с заполненного листа и добавьте строку на основной лист, оставив флажок не отмеченным.

4. Спасибо за вашу поддержку. В случае ситуации с вашим комментарием я думаю, что сценарий OP уже достиг этого. Итак, когда я смог найти проблему OP, я хотел бы подумать о решении.