【问题标题】:Do not have permission to use setFormula Google appScript无权使用 setFormula Google appScript
【发布时间】:2019-07-02 21:36:22
【问题描述】:

我正在尝试制作一个脚本,其中包含单元格的地址。

在excel中,我有这个代码:

Function pos(cell As Range)
    pos = cell.Address
End Function

它给了我牢房的地址。

在 Google 应用脚本上,我尝试了以下代码:

function addrss(cel){
    var spreadsheet = SpreadsheetApp.getActive();
    var cc = spreadsheet.getCurrentCell().activate();
    c = cc.setFormula('=ADDRESS(COLUMN('+cel+');ROW('+cel+'))');
    return c;
}

function pos(cell){
    var ad = addrss(cell);
    return ad;
}

但收到一条错误消息“您无权调用 setFormula”。

有没有办法获得此权限或解决方法?

【问题讨论】:

  • 虽然我不确定我对你的问题的理解是否正确,但是如果你想使用pos()作为自定义函数,很遗憾,其他函数不能使用自定义函数。因此,作为一种解决方法,如何使用 OnEdit 事件触发器?例如,当=SAMPLE() 放入单元格时,=SAMPLE() 会被 OnEdit 事件触发器替换为您想要的函数。 This thread 也可能有用。如果这不是您想要的方向,我很抱歉。
  • 我需要在单元格本身中打印单元格的地址,例如当我键入“=pos(A1)”时,单元格中应该有“$A$1”。如果你明白我的意思。关于 OnEdit,我正在尝试阅读,我不确定我是否理解得很好。

标签: google-apps-script google-sheets google-sheets-formula custom-function


【解决方案1】:

自定义函数不能用于设置单元格公式,它们只能用于返回值/值数组。参考。 Custom Functions in Google Sheets

要自动设置单元格的公式而不是使用自定义函数,您可以使用从以下位置调用的函数:

  • 自定义菜单
  • 按钮
  • 对话框或侧边栏
  • 简单或可安装的触发器

资源

相关

【讨论】:

  • @CristianErikAmesMasek 参考资料解释了自定义函数在 Google 表格中的工作原理:)
  • 嗯同意@CristianErikAmesMasek,但是现在阅读了参考页面,这似乎是鲁本可以添加的关键部分:“自定义函数不能影响除了它返回值的单元格之外的单元格。在换句话说,自定义函数不能编辑任意单元格,只能编辑调用它的单元格及其相邻单元格。要编辑任意单元格,请改用自定义菜单来运行函数。"
猜你喜欢
  • 1970-01-01
  • 2012-11-12
  • 2020-06-21
  • 1970-01-01
  • 2023-01-29
  • 1970-01-01
  • 1970-01-01
  • 2020-03-11
  • 1970-01-01
相关资源
最近更新 更多