-1

大家好,我正在尝试在自定义函数中使用“Importrange”函数(如下所示)。

function csvLinks(sheetName,range) 
{

    var link1 ="\"https://docs.google.com/spreadsheets/d/1Gnqa4WOC7mRX2meqwrUCrh9dcS94mI0G-abc123\"";

    var link2 = "\""+sheetName+"!"+range+"\"";

    var ss = SpreadsheetApp.getActiveSpreadsheet();

    var sheet = ss.getSheets()[0];

    var cell = sheet.getRange("A1");

    return cell.setFormula("=IMPORTRANGE(link1,link2)");
}

但是,当我尝试使用它时,我收到以下错误消息。

单元格 A1 错误 = 您无权调用 setFormula(第 7 行)。

单元格 A2 错误 = 未知范围名称:'LINK1'

4

1 回答 1

1

基于这个线程

[Source.] 自定义函数返回值,但它们不能在它们所在的单元格之外设置值。在大多数情况下,单元格 A1 中的自定义函数无法修改单元格 A5。但是,如果自定义函数返回双精度数组,则结果会溢出包含该函数的单元格并填充包含自定义函数的单元格下方和右侧的单元格。您可以使用包含 return [[1,2],[3,4]]; 的自定义函数对此进行测试。

您的错误可能意味着简单的触发器不能做任何需要授权的事情,但可安装的触发器可以。从这个论坛,它指出自定义函数只能修改调用它们的单元格,它们不能修改任意单元格。

您还可以检查这些相关线程:

于 2016-09-27T16:25:02.093 回答