从另一个 Google 电子表格动态更新公式

埃里克·曼利

我有两个谷歌电子表格,一个主副本和一个子副本。当我更新主副本中的公式时,我希望它也更新子副本中的公式。我打算创建子副本的许多副本,并且不想在每次必须更改小东西时更新每个副本中的公式。

我试过使用 IMPORTRANGE(),它只给我值,而不是公式。所以我想创建自己的脚本来完成这项工作。我正在使用以下代码来尝试:

function REMOTEDATA(inKey, inRange) {

  var outData;  
  var ss = SpreadsheetApp.openById(inKey);

  if (ss) {
     outData = ss.getRange(inRange).getFormulas();
  }

  return outData;
}

//My manifest is the following:
{
  "oauthScopes": [
    "https://www.googleapis.com/auth/spreadsheets"
  ],
  "timeZone": "America/Denver",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER"
}

我对 oAuth 很陌生,我不明白如何让它发挥作用。当我尝试这样做时,它给了我以下信息:

“您无权调用 SpreadsheetApp.openById。所需权限:https : //www.googleapis.com/auth/spreadsheets(第 4 行)。”

谁能告诉我需要添加什么才能使其正常工作?如果有更简单的方法,我会全力以赴。

编辑:阅读下面鲁本的评论后,我改变了我的做法,让工作表上的一个按钮运行该功能。它解决了第一个问题,但现在我遇到了另一个问题。我无法将所有数据直接从一张纸复制到另一张纸。我正在尝试获取公式、值和格式。如果我只对范围使用 getFormulas() 和 setFormulas(),它会删除所有不是公式的值,并且不会更改格式。我一直在尝试使用 copyTo() 但它告诉我我不能在电子表格之间执行此操作。我目前的代码是:

function REMOTEDATA() {

  var MASTERKEY = "key";
  var UPDATERANGES = ["A1:B200", "C7:C200", "D1:H200", "J1:L200", "N1:S200", "U1:X200", "z1:ac200", "AE1:AH200", "AJ1:AL200"];

  var ss = SpreadsheetApp.openById(MASTERKEY);
  var cur_ss = SpreadsheetApp.getActiveSpreadsheet();

  UPDATERANGES.forEach(function(range) {

    data = ss.getRange(range).copyTo(cur_ss.getRange(range));


  });
}

看着 Ranges 类的不同方法,我的头开始受伤了。我看不到任何方法可以做到这一点,但我觉得我错过了一些东西。还有其他想法吗?

编辑 3:好的。我想出了一个解决方法。基本上我所做的是使用 sheet.copyTo() 函数将整个工作表从一个电子表格复制到另一个电子表格。然后我使用 range.copyTo() 来得到我想要的。然后我使用 sheet.deleteSheet() 删除了复制的工作表

鲁本

自定义函数匿名运行,因此它们无法调用需要授权的服务,例如openById.

不是使用自定义函数来执行脚本,而是使用另一种方法,例如自定义菜单、将脚本分配给图像等,或者只是从脚本编辑器运行它。

注意:您必须稍微修改脚本或使用另一个函数来传递所需的参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何动态设置从Google电子表格到另一个Google电子表格单元格的值

从电子表格中修改另一个电子表格:Google Apps脚本

Google Apps 脚本复制范围从一个电子表格到另一个具有格式/公式的电子表格

使用Python使用Google API将电子表格复制到另一个电子表格

两个不同电子表格之间的VLOOKUP公式-Google表格

修改代码-将范围复制到另一个电子表格Google表格

如何在 Google 表格中添加链接到另一个电子表格的按钮?

另一个用户应该能够使用Google App脚本更新Google电子表格中的受保护范围

如何根据Google电子表格中的多个条件从另一个单元格匹配或获取动态值

如何在另一个电子表格中使用Google Apps脚本?

在WorkBook中使用另一个电子表格中的= UNIQUE-Google Apps脚本

在 Google Sheets Scripts 中的另一个电子表格中搜索工作表的功能

将工作表复制到另一个电子表格[Google Apps脚本]

从另一个电子表格访问Google工作表图像onClick句柄

Google电子表格公式

在Google电子表格中需要字母下一个字母的公式

Google Apps脚本,使用格式将一个电子表格复制到另一电子表格

将过滤器数据从一个电子表格文件复制到另一个电子表格-Google Apps脚本

每n小时更新一次Google电子表格

复制单元格值并将其通过脚本发送到另一个电子表格的更快方法(Google表格)

从Google电子表格中获取所有工作表标签名称的列表,然后将其放入另一个电子表格中

使用Google工作表脚本时,如何在不创建新工作表副本的情况下将电子表格的工作表复制到另一个电子表格中?

如何在不使用电子表格ID的情况下使用Google Script从另一个Google Sheet导入数据

将数据透视表的总计单元格复制到Google电子表格中的另一个单元格

如何在Google Apps脚本中将按钮连接到另一个电子表格中的功能?

触发范围复制到另一个电子表格的Google脚本-对我不起作用

Google 电子表格 - 制作按钮,在按下时将数据添加到另一个工作表中的单元格中

我可以根据单独电子表格中的信息修改一个电子表格文档(Google表格)吗

使用 Java 和 Google Drive API 创建一个空电子表格