Я пытаюсь использовать скрипт Google Apps для создания функции, которая будет искать слово Yes
в определенном столбце моей электронной таблицы Google.
Если он найдет Yes
, он продолжит копирование всех этих строк в другую электронную таблицу, сохраненную на моем диске Google, а затем удалит ее из исходной электронной таблицы.
У меня практически нет опыта работы с этим языком, но я написал код.
Я ищу правильный способ выполнить это и как завершить свой код. Чтобы ты делал?
Новейшее редактирование кода:
function moveDelete() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var dsh=SpreadsheetApp.getActive().getSheetByName('Sheet2');
var data = sh.getRange(1, 1, sh.getLastRow()-1).getValues();
var range = sh.getRange(1, 1, data.length);
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {3
var array = data[i]
if (array[4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Send to Record",
functionName : "moveDelete"
}];
sheet.addMenu("Custom Menu", entries);
};
1 ответ
Решение 1. Перенести в тот же документ:
function moveDelete() {
var ss = SpreadsheetApp.getActive()
var sh = ss.getSheetByName('Sheet1');
var dsh= ss.getSheetByName('Sheet2');
var data = sh.getDataRange().getValues();
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {
var array = data[i]
if (data[i][4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
Решение 2 (на основе комментария) - перенос в другой файл электронной таблицы:
function moveDelete() {
var ss = SpreadsheetApp.getActive();
var ts = SpreadsheetApp.openById("id of the target spreadsheet here"); // example: 31d6k7iXh20rjLn22m0axvscR6-BcyOy_fxhdk-ResXU
var sh = ss.getSheetByName('Sheet1'); // Sheet1 of the source spreadsheet
var dsh= ts.getSheetByName('Sheet2'); // Sheet2 of the target spreadsheet
var data = sh.getDataRange().getValues();
var rowsDeleted = 0;
for (var i = 0; i <= data.length - 1; i++) {
var array = data[i]
if (data[i][4] == 'Yes') {
dsh.appendRow(array);
sh.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
Обратите внимание , что 1. использует 4
в качестве индекса, который проверяет наличие 5-го столбца, то есть столбца E . Убедитесь, что вы правильно указали порядковый номер, чтобы выбрать нужный столбец.
Похожие вопросы
Новые вопросы
google-apps-script
Используйте для вопросов о Google Apps Script, серверной платформе Google для облачных сценариев на основе Javascript для автоматизации задач в продуктах Google и сторонних службах. Используйте в дополнение к релевантным тегам продукта (например, [google-sheets], [google-docs]) или API (например, [google-drive-api]), где это применимо.