【问题标题】:setBackground() or setFontColor not working in GASsetBackground() 或 setFontColor 在 GAS 中不起作用
【发布时间】:2014-07-25 21:24:53
【问题描述】:

我无法让我的脚本突出显示一个范围,经过一段时间的调试后,我意识到 type 的调用似乎有问题

range.setBackground("name of color");

所以,我去了 GAS 参考网站并使用了他们页面中的示例:https://developers.google.com/apps-script/reference/spreadsheet/range#setFontColor(String)

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange("B2");
cell.setFontColor("red");

此代码导致 !ERROR。 如果我在 setFontColor() 调用之前强制返回,一切都很好。 (我的意思是它从函数返回没有错误,当然,没有设置颜色)。

我做错了什么?

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    您没有提供足够的信息,但我假设您是从单元格公式中调用您的函数作为自定义函数。请参阅文档,使用方式是您无法更改当前单元格以外的单元格。

    【讨论】:

    • 你说得对,我忘了说我正在尝试创建一个自定义函数,我认为我可以从单元格公式中调用它作为自定义函数,它会改变指定范围的颜色.所以,我想要一行根据特定单元格的值改变颜色。我想我必须弄清楚如何在我的文档之上运行某种“自我刷新”脚本,它会每隔一段时间检查一次单元格内容。
    • 没错。使用时间触发器每分钟刷新一次,另外我建议您将菜单添加到“立即格式化”。确保检查电子表格本机自定义格式。它在新工作表中要好得多,并且可以参考范围
    • 请参阅此处重新调整工作表的本机自定义格式:stackoverflow.com/questions/20545961/…
    • 好的,现在知道了。用过这个帖子:stackoverflow.com/questions/3703676/… 然后了解了onEdit(e)
    • 是的,onEdit 也可以,更普遍的是 onChange。有一些问题需要处理,请确保在不是电子表格所有者的用户上进行测试。此外,有些动作不会触发 onChange,例如“撤消”,所以也有一个时间触发器来处理这些。
    【解决方案2】:

    我无法重现该错误。以下代码按预期工作:

    /* CODE FOR DEMONSTRATION PURPOSES */
    function setFontAndBackgroundColorCell() {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];
      var cell = sheet.getRange('B2');
      cell.setFontColor('yellow');
      cell.setBackground('red');
      cell.setValue('TEST');
    }
    /* CODE FOR DEMONSTRATION PURPOSES */
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-28
      • 2012-02-29
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      相关资源
      最近更新 更多