首页 > 解决方案 > 将单元格背景复制到其他电子表格

问题描述

我是 Google Apps 脚本的新手,我不知道如何编写一些代码。我有两张电子表格,一张给管理员,一张给客户。每次管理员更新单元格时,客户端也必须更新。但是,只复制单元格中的数据,而不复制其中的背景。以下是截图以便更好地理解:

管理员端

客户端

标签: google-apps-scriptgoogle-sheets

解决方案


将值和背景从管理员复制到客户端

这需要一个可安装的 onEdit(e) 触发器。您还需要客户端电子表格的 ID。请注意,您不能从脚本编辑器运行它,除非您从另一个提供事件对象的函数中执行此操作。请参阅此示例

function updateClient(e) {
  var ss=SpreadsheetApp.openById('ClientSideSpreadsheetId');//You need to provide id here.  You cannot pass other parameters to this function because it a trigger.
  var sh=ss.getSheetByName(e.range.getSheet().getName());
  var rg=sh.getRange(e.range.rowStart,e.range.columnStart);
  rg.setValue(e.value);
  rg.setBackground(e.range.getBackground());
}

我在我的帐户上对此进行了测试,并且可以正常工作。我怀疑您将无法运行它,因此请仔细阅读我提供的链接中的答案,然后再告诉我它不起作用。

这是事件对象的样子:

{"authMode":{},"range":{"columnStart":3,"rowStart":18,"rowEnd":18,"columnEnd":3},"source":{},"user":{"nickname":"nickname","email":"email@email.com"},"triggerUid":"123456","value":"3"}

推荐阅读