Как обновить значения определенных ячеек, которые уже были скопированы на новый лист? - PullRequest
0 голосов
/ 04 апреля 2019

В настоящее время я копирую строки с одного листа на другой, когда значение ячейки в столбце 14 = "Завершено".Затем я хотел бы сбросить значения строк в столбцах 4,6,14-18 на пустые, скопировать столбец 27 в столбец 1 и обновить столбец 14 на «не запущен»

Я пробовал несколько разных маршрутов, нотрудно найти правильный синтаксис.Копирование скрипта макроса и его изменение не помогло мне.

В идеале я хотел бы, чтобы все совпадения в функции copyIT () сбрасывались сразу после того, как они были скопированы со всем сценарием с использованием временного триггера.

Вот моя копия на новый листсценарий:

function copyIT() {
var ss = SpreadsheetApp.openById(""),
sheet1 = ss.getSheetByName("Scheduled"),
sheet2 = ss.getSheetByName("Completed Jobs"),
valuesToCheck = ["Completed"],
arr = [], 
values = sheet1.getDataRange().getValues(),
i = values.length;
while (--i) {
if (valuesToCheck.indexOf(values[i][13]) > -1) {
    arr.unshift(values[i])
 }
}
sheet2.getRange(sheet2.getLastRow()+1, 1, arr.length, 
arr[0].length).setValues(arr);}

Вот сценарий записи макроса изменений, которые я внес вручную на лист:

function ResetPmRowmacro() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getCurrentCell().offset(5, 3).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, 
skipFilteredRows: true});
spreadsheet.getCurrentCell().offset(0, 10).activate();
spreadsheet.getCurrentCell().setValue('Not Started');
spreadsheet.getCurrentCell().offset(0, 1).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, 
skipFilteredRows: true});
spreadsheet.getCurrentCell().offset(0, 1).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, 
skipFilteredRows: true});
spreadsheet.getCurrentCell().offset(0, 1).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, 
skipFilteredRows: true});
spreadsheet.getCurrentCell().offset(0, 1).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, 
skipFilteredRows: true});
spreadsheet.getCurrentCell().offset(0, 1).activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, 
skipFilteredRows: true});
spreadsheet.getCurrentCell().offset(0, -18).activate(); 
spreadsheet.getCurrentCell().offset(0,27).
copyTo(spreadsheet.getActiveRange(), 
SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...