【问题标题】:Changing Background Color in Active Cell via Custom Menu in Google Docs via Google Apps Script通过 Google Apps 脚本通过 Google Docs 中的自定义菜单更改活动单元格中的背景颜色
【发布时间】:2019-07-12 06:21:38
【问题描述】:

我在 Google 文档(不是表格)中有一个表格。我创建了一个自定义菜单,它将有一个选项列表。目标是当用户选择其中一个选项时,它将更改活动单元格的背景颜色(由光标所在的位置决定)。我尝试了下面的代码,它运行没有错误,但它不会改变背景颜色。有任何想法吗?谢谢!

function onOpen() {

      var ui = DocumentApp.getUi();

      ui.createMenu('Change Colors')
      .addItem('Low', 'LowFunction')
      .addToUi();
    }

    function LowFunction() {
      DocumentApp.getUi()
      var document = DocumentApp.getActiveDocument();

      var SelectedCell = document.getCursor().getElement();
      var range = SelectedCell.setBackgroundColor('#ffffff');
    }

对于一些附加信息,如果我添加以下代码行:

var SelectedCell = document.getTables()[1].getCell(1,0).setBackgroundColor('#000000');

它会改变特定单元格的背景颜色...但如果可能的话,我只需要这段代码来改变当前选定单元格的颜色。

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:
    • 您想在光标位置停留在单元格中时更改单元格的背景颜色。
    • 您希望使用 Google Apps 脚本实现此目的。

    如果我的理解是正确的,那么这个修改呢?

    修改点:

    • 为了检查光标位置是否在单元格中,它检查document.getCursor().getElement()的父级。因为当光标停留在单元格中时,元素类型为段落。

    修改后的脚本:

    function LowFunction() {
      var document = DocumentApp.getActiveDocument();
      var cursor = document.getCursor().getElement();
      var SelectedCell = cursor.getParent();
      if (SelectedCell.getType() == DocumentApp.ElementType.TABLE_CELL) {
        SelectedCell.asTableCell().setBackgroundColor("#808080");
      }
    }
    
    • 在此脚本中,单元格的背景颜色更改为灰色。

    参考资料:

    如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

    【讨论】:

    • 啊,这就是我所缺少的!这正是我所需要的,而且效果很好。非常感谢您的详尽解释!
    • @hunter21188 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    相关资源
    最近更新 更多