从引用的单元格更改单元格时,如何突出显示该单元格?

Posted

技术标签:

【中文标题】从引用的单元格更改单元格时,如何突出显示该单元格?【英文标题】:How can I highlight a cell when it it is changed from a referenced cell? 【发布时间】:2021-05-27 23:23:41 【问题描述】:

我有一个有点复杂的 Google 表格。

第一个选项卡是摘要选项卡,它使用 vlookup 从工作表中的其他选项卡收集数据。 其他选项卡由 IMPORTRANGE 函数创建。 IMPORTRANGE 选项卡的来源由其他人编辑和维护。

当有人编辑他们的工作表时,IMPORTRANGE 工作表会自动更新,摘要选项卡也会相应更新。

我需要在第一个(摘要)选项卡上提供数据更改的每周摘要。当有人更新他们的私人工作表时,我想自动突出显示“摘要”选项卡上的单元格。

我有一个运行 onEdit 的脚本,当我直接在摘要选项卡上更新单元格时,它会更新更改,但当私有工作表上的数据发生更改时,会更新摘要选项卡,更改的单元格不会突出显示。

当引用的单元格更改时,摘要选项卡数据更改时如何实现突出显示?

更多-我有一个可安装的触发器和一个简短的脚本,在进行任何更改时都应该运行:

function createSpreadsheetOpenTrigger() 
   var ss = SpreadsheetApp.getActive();
   ScriptApp.newTrigger('onEdit2')
    .forSpreadsheet(ss)
    .onChange()
    .create();
    

function onEdit2(e)

  var range=e.range;
  var column=range.getColumn();
  if(column>1 && column<27)
  
    range.setBackground('#ffff00');

  

执行失败并提供此错误,“TypeError: Cannot read property 'getColumn' of undefinedat onEdit2(Code:12:20)”

提前致谢。

【问题讨论】:

【参考方案1】:

我相信您可以通过使用可安装的 onChange(e) trigger 而不是 onEdit 来做到这一点,因为通过脚本执行进行更改时不会触发 onEdit。

看到这个答案:https://webapps.stackexchange.com/a/119702/237316


更新:

触发器限制表明,当通过脚本或 API 对绑定文档进行编辑时,不会执行 onEdit 和 onChange。但是,有一个使用 sheet API 的解决方法可以触发触发器。如果您通过 Apps 脚本将 ValueInputOption = USER_ENTERED 与 Sheets API 一起使用。见https://developers.google.com/sheets/api/reference/rest/v4/ValueInputOption?hl=en

【讨论】:

感谢您的回复。我试过这个,但我得到了一个错误。我将代码发布到主帖。 @BobMorganAZ-Phoenix 我编辑了我的答案,以显示触发器是通过 API 执行操作的一种方式,即使用 ValueInputOption。但是,由于限制,在您当前的工作流程中它不起作用。

以上是关于从引用的单元格更改单元格时,如何突出显示该单元格?的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 选择单元格时所有组件都更改了背景颜色

为啥我的 Java 自定义单元格渲染器在选择行/单元格时不显示突出显示?

在表格中悬停单元格时突出显示特定单元格

如何避免在表格视图中突出显示两个单元格?

在弹出它转换到的视图控制器之前,如何使单元格保持突出显示?

以单击另一个单元格为条件突出显示单元格