У меня есть два листа, которые синхронизированы в Google Таблицах с использованием газа я нашел на этом SO, который я положил на спусковой крючок изменения Is there a way to keep two sheets synchronized?Двунаправленная синхронизация, когда строки удаляются
сценария здесь
var sourceSpreadsheetID = "ID HERE";
var sourceWorksheetName = "SHEET NAME HERE";
var destinationSpreadsheetID = "ID HERE";
var destinationWorksheetName = "SHEET NAME HERE";
function importData() {
var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
var thisData = thisWorksheet.getDataRange();
var toSpreadsheet = SpreadsheetApp.openById(destinationSpreadsheetID);
var toWorksheet = toSpreadsheet.getSheetByName(destinationWorksheetName);
var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
toRange.setValues(thisData.getValues());
}
Реальная проблема, с которой я столкнулся, заключается в том, что если вы удаляете строку в середине синхронизированного листа, getDataRange вычисляет нижний диапазон данных источника и синхронизирует его только с этим диапазоном на листе адресата, создавая двойные строки для любого вне диапазона
Пример: У меня 4 строк на моем исходном листе и моего назначение листа
б
гр
д
удаление строки с, исходным листом теперь
б
г
листы для конечных точек и в настоящее время
a
б
д
д
я удалить строку 3, сценарий синхронизирует 3 строки на листе назначения, оставив 4-ю строку в виде двойного
Любые мысли были бы приветствовать о том, как преодолеть это, Я просмотрел названные диапазоны, но мне не понравилось, что мне пришлось установить потолок в диапазоне для количества строк, когда создается 1000 строк, диапазон больше не будет работать
'toWorksheet.clear()' должен удалить весь лист. – SpiderPig
, который отлично работает, ответьте, и я приму –