РЕДАКТИРОВАТЬ:
Если вы не хотите, чтобы сценарий запускался автоматически при редактировании столбца Status из MAIN, используйте эту функцию вместо:
function CopyDataToNewFile() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('MAIN');
var values = sourceSheet.getDataRange().getValues();
var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('OPEN');
targetSheet.clear();
for(var i = 1; i < values.length; i++) {
if(values[i][7] == 'OPEN') {
var dataA = values[i][0];
var dataC = values[i][2];
var dataF = values[i][5];
targetSheet.appendRow([dataA, dataC, dataF]);
}
}
}
===============================================
Если вы хотите, чтобы скрипт запускался каждыйвременной столбец H отредактирован, используйте это ниже. Сценарий ничего не делает, если отредактированная ячейка взята из столбца H из MAIN, поэтому не беспокойтесь о редактировании в OPEN при изменении данных из MAIN.
Все данные копируются в первые 3 столбца вкладки ОТКРЫТО. Кроме того, все предыдущие данные на вкладке ОТКРЫТО удаляются перед копированием:
function onEdit(e) {
var sourceSheet = e.source.getActiveSheet();
var sheet_name = sourceSheet.getName();
var column = e.range.getColumn();
if(sheet_name == 'MAIN' && column == 8) {
var values = sourceSheet.getDataRange().getValues();
CopyDataToNewFile(values);
}
}
function CopyDataToNewFile(values) {
var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('OPEN');
targetSheet.clear(); // This clears previous data in OPEN tab, delete this line if you don't want this to happen.
// Looping through each row in MAIN tab
for(var i = 1; i < values.length; i++) {
// Checking if column H value is 'OPEN'
if(values[i][7] == 'OPEN') {
// Getting values from A, C, F columns
var dataA = values[i][0];
var dataC = values[i][2];
var dataF = values[i][5];
targetSheet.appendRow([dataA, dataC, dataF]);
}
}
}
Я надеюсь, что это именно то, что вы хотели сделать, и мне очень жаль, если я неправильно понял вашу цель.