getFormulas()和setFormulas()将引用转换为#REF

时间:2019-01-04 07:06:51

标签: google-apps-script google-sheets importrange

我的电子表格存在问题,无法刷新=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 个答案:

答案 0 :(得分:0)

@TheMaster的建议非常有效。这是最终代码:

var importRange = ss.getRangeByName("MasterImport");
var importFormulas = importRange.getFormulas();
importRange.clearContent();
SpreadsheetApp.flush();
importRange.setFormulas(importFormulas);