В настоящее время я пытаюсь выполнить действие «copyTo» или «setValues». Мне нужно скопировать одну сетку (Лист1! J16: Q36) в другую сетку (Лист2! J16: Q36), но не каждая ячейка должна быть скопирована. Только те значения, которые не идентичны значениям Sheet1, должны копироваться.
Я попробовал приведенный ниже код с успехом, но, к сожалению, сценарий занимает много времени. Я понимаю, что пакетная операция с getValues в массиве будет быстрее, но у меня нет возможности сделать этот скрипт.
Я также использовал третью сетку, которая сравнивала значения sheet1 и 2 и возвращала 1 или 0. Только если показывалось значение 1, ячейка рассматривалась циклом for. Я так понимаю, это неэффективно.
Спасибо за вашу помощь. Я очень ценю это.
var ratenprogramm = SpreadsheetApp.getActiveSpreadsheet();
var ratenprogrammmain = ratenprogramm.getSheetByName("Ratenprogramm");
var vorlageratenprogramm =
ratenprogramm.getSheetByName("VorlageRatenprogramm");
for(i=1;i<=21;i++)
{
for(j=1;j<=8;j++)
{
if(vorlageratenprogramm.getRange(37+i,9+j).getValue() == 1)
{
vorlageratenprogramm.getRange(15+i,9+j).copyTo(ratenprogrammmain.getRange(15+i,9+j),{contentsOnly: true});
}
}
}