将单元格背景复制到其他电子表格

时间:2019-03-10 15:51:26

标签: google-apps-script google-sheets

我是Google Apps脚本的新手,而且我不知道如何编写一些代码。我有两个电子表格,其中1个用于管理员,1个用于客户端。每次管理员将更新单元时,客户端也必须更新。但是,仅复制单元格中的数据,而不复制其中的背景。以下是屏幕快照,可帮助您更好地理解:

Admin Side

Client Side

1 个答案:

答案 0 :(得分:0)

将值和背景从Admin复制到客户端

这需要一个可安装的onEdit(e)触发器。您还将需要客户端电子表格的ID。请注意,除非从提供事件对象的另一个函数执行此操作,否则无法从“脚本编辑器”运行此命令。参见this example

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"}