getFormulas() и setFormulas() преобразуют ссылки в #REF
У меня проблема с моей таблицей, не обновляющей =IMPORTRANGE
формула. Я испробовал все приемы с разрешениями для общего доступа и настройками электронных таблиц, но они не работают для меня.
Вместо этого я пытаюсь создать простой макрос, который стирает формулу и вводит ее заново, чтобы обновить импорт. Когда я запускаю свой макрос, мои формулы превращаются в #REF
,
var ss = SpreadsheetApp.getActiveSpreadsheet();
var startingSheet = ss.getActiveSheet();
var importRange = ss.getRangeByName("MasterImport");
var importFormulas = importRange.getFormulas();
importRange.clearContent();
importRange.setFormulas(importFormulas);
Моя формула в именованном диапазоне "MasterImport" выглядит следующим образом:
=IMPORTRANGE(#REF!, index(indirect(index(#REF!, match("asset_tab", #REF!, 0))),
match(#REF!, indirect(index(#REF!, match("series_id", #REF!, 0))), 0)))
1 ответ
Предложение @TheMaster сработало отлично. Вот окончательный код:
var importRange = ss.getRangeByName("MasterImport");
var importFormulas = importRange.getFormulas();
importRange.clearContent();
SpreadsheetApp.flush();
importRange.setFormulas(importFormulas);