Я пытаюсь написать скрипт для копирования информации с одного листа на другой в Google Sheets, как ежедневное обновление. Информация по строкам (например, строка 5 содержит всю информацию, которую я хочу скопировать, с указанием даты в столбце A)
Если дата в записи (столбец A) не совпадает с сегодняшней датой, то всю строку необходимо перенести на другой лист.
У меня возникли проблемы при сравнении ячейки, содержащей дату, в которую информация была введена, с сегодняшней датой, затем захвата номера строки этой ячейки, а затем настройки переменных для копирования.
На новом листе необходимо отсканировать диапазон для следующей пустой строки, а затем вставить информацию в следующую пустую строку.
В настоящее время я настроил одну ячейку для копирования / вставки, но я настрою ее для целого ряда ячеек.
ОБНОВЛЕНИЕ: я понял, как скопировать информацию. Мои строки для поиска начинаются на вкладке «Копировать из» в строке 5, и мой код может искать и сравнивать даты, в которые информация была введена в столбце B, с сегодняшней датой. Код с затем скопируйте информацию в этой строке на новую вкладку «Копировать в».
Теперь я хотел бы выяснить, как удалить информацию на вкладке «Копировать из», чтобы она существовала в моей электронной таблице только один раз, либо на вкладке «Копировать из» (если введенная информация относится к сегодняшней дате или в будущем). ) или на вкладке «Копировать в» (если введенная информация относится к предыдущей дате). Я добавил строку кода внизу, чтобы сделать это, но когда я запускаю свой код, он копирует некоторую информацию, удаляя другие части, а также копируя информацию с сегодняшней даты. Любая помощь с этим?
function funcname() {
var Sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Copy From");
var Sheet2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Copy To");
var ColumntoSearch = 2;
var LastRow = Sheet.getLastRow();
//Gets column to search for dates to compare to Today
var Range = Sheet.getRange(5, ColumntoSearch, LastRow, 1);
var Values = Range.getValues();
//Sets the amount of data to copy over
var NumberofColumns = 27;
var NumberofRows = 1;
var DestRow = Sheet2.getLastRow()+1;
//Compares all the Dates in the Copy From tab to Today
var dt=new Date();
var dt1=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate());
var dv=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()).valueOf();
var d=0;
for (var i=0;i+d<Values.length;i++){
//If dates are less than today, they will be copied over to the Copy To tab
if(new Date(Values[i+d][0]).valueOf()<dv){
var RangetoCopy = Sheet.getRange((i+5), 1, NumberofRows, NumberofColumns);
var DestRange = Sheet2.getRange(DestRow, 1, NumberofRows, NumberofColumns);
DestRow++;
RangetoCopy.copyTo(DestRange);
Sheet.deleteRows(i+7);
}
}
}