Я считаю, что ваша цель следующая.
- Когда столбец «G» равен
Y
, вы хотите скопировать значения столбцов «B», «C» и » Е »до последней строки листа ORDERS
. - Вы хотите скопировать все строки, в которых столбец «G» равен
Y
при запуске скрипта.
- Вы хотите удалить содержимое столбца «E "и" F "скопированных строк в листе
IN
при запуске сценария. - Вы хотите запустить сценарий, нажав кнопку на листе.
Для этого, как насчет этого ответа?
Точки модификации:
- В вашем скрипте
- Когда скрипт запускается нажатием кнопки на листе , объект события не может быть использован.
- Ваш скрипт копирует одну строку активного диапазона.
- Столбцы «E» и «F» скопированных строк не удаляются.
Требуется изменить указанные выше пункты модификации. Когда указанные выше пункты отражаются в сценарии, он становится следующим:
Измененный сценарий:
Скопируйте и вставьте следующий сценарий в редактор сценариев. И, пожалуйста, подготовьте кнопку, которая является рисунком и / или изображением, и назначьте кнопке функцию run
. Таким образом, когда кнопка нажата, сценарий запускается. И столбцы «B», «C» и «E» всех строк, которые столбец «G» составляет Y
, копируются из листа «IN» в последнюю строку листа «ORDERS».
function run() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var srcSheet = ss.getSheetByName("IN");
var dstSheet = ss.getSheetByName("ORDERS");
// 1. Retrieve the values from "A2:G" of sheet "IN".
var srcValues = srcSheet.getRange("A2:G" + srcSheet.getLastRow()).getValues();
// 2. Create an object for putting values and deleting the contents of the columns "E" and "F".
var obj = srcValues.reduce((o, [,b,c,,e,,g], i) => {
if (g == "Y") {
o.values.push([b, c, e]);
o.ranges.push(`E${i + 2}:F${i + 2}`);
}
return o;
}, {values: [], ranges: []});
// 3. Copy the values to the sheet "ORDERS".
dstSheet.getRange(dstSheet.getLastRow() + 1, 1, obj.values.length, obj.values[0].length).setValues(obj.values);
// 4. Delete the contents of the columns "E" and "F" of sheet "IN".
srcSheet.getRangeList(obj.ranges).clearContent();
}
Примечание:
- Насчет кнопки запуска скрипта Google Apps, думаю, этот сайт полезен. Ref В вашем случае создайте кнопку на листе «IN» и назначьте кнопке функцию
run
. Таким образом, при нажатии кнопки сценарий работает. - Пожалуйста, используйте этот сценарий с V8.
Ссылки: