#google-sheets #google-drive-api #google-sheets-formula #importrange
#google-sheets #google-drive-api #google-sheets-формула #importrange
Вопрос:
Я видел несколько жалоб на задержку обновления данных через IMPORTRANGE в Google Sheets, но мне нужно обратное, и я не хочу, чтобы второй лист обновлялся автоматически, просто обновляйте, например, в конце дня.
Код уже выглядит следующим образом:
=IMPORTRANGE("The Key","The_Page!B:D")
Ответ №1:
Я обошел это, создав цикл обновления для обеих электронных таблиц с использованием NOW
ячейки, при этом обе электронные таблицы ссылаются на ячейки друг друга NOW
.
Когда к исходному листу добавляется отправка формы или что-то в этом роде, он обновляет свою собственную NOW
ячейку и повторно обновляет собственную IMPORTRANGE
ячейку. Вторая электронная таблица следует этому примеру, обновляя свою собственную NOW
ячейку, чтобы предоставить исходному листу правильные данные. Поскольку вторая электронная таблица обновилась сама, она также обновляет основную IMPORTRANGE
, которая обновляет данные, которые вы хотите отобразить в первую очередь, а также IMPORTRANGE
ячейку, которая получает NOW
ячейку из исходной электронной таблицы
По крайней мере, я уверен, что так оно и работает. Все, что я знаю, и все, что меня волнует, честно говоря, это то, что это работает
Ответ №2:
Может быть, вам нужно воспользоваться редактором сценариев и написать простую функцию такого рода:
function importData()
{
var ss = SpreadsheetApp.getActiveSpreadsheet(); //source ss
var sheet = ss.getSheetByName("The_Page"); //opens the sheet with your source data
var values = sheet.getRange("B:D").getValues(); //gets needed values
var ts = SpreadsheetApp.openById("The Key"); //target ss - paste your key
ts.getSheetByName("Name of the target sheet").getRange("B:D").setValues(values);
}
А затем добавьте триггер, управляемый временем, к этому проекту (Ресурсы> Триггеры текущего проекта> Добавить новый).