【问题标题】:How to Update a workbook sheet data in google sheets from other different workbook sheet(s)?如何从其他不同的工作簿工作表更新谷歌工作表中的工作簿工作表数据?
【发布时间】:2019-09-26 10:14:59
【问题描述】:

在谷歌驱动器中,我有两个不同的工作簿/文件, 让我们这样称呼他们: 工作簿(一) 工作簿 (B)

工作簿 (B) 包含 3 个不同的工作表(工作表 1、工作表 2、工作表 3) 单元格“A1”、“B1”、“C1”被一些数字、日期或字符串值占据。

工作簿 (A) 只有一张工作表(Sheet 1)和空白列“A”、“B”、“C”。

我想在 WB(B) 和 WB(A) 之间设置一个自动和/或全局函数/脚本/超链接,在其中传输单元格“A1”、“B1”、“C1”的值WB(B) 从表 1、表 2、表 3 到相应的列“A”、“B”、“C”中的 WB(A)。每个都在自己的新行中作为一组。

并且每当有人在 WB(B) 中添加新工作表,即工作表 4规则将自动应用到其上,无需手动设置。

我已经尝试过importrange()函数,但是每次都需要手动设置!我知道编程,有时我编写自己的代码,我尝试为它编写脚本,但我无法达到我想要的(缺乏经验),我非常需要帮助,因为这是一项繁重的工作任务,我们正在尝试应用一种新的工作方法,请您帮我编写代码吗?

【问题讨论】:

标签: function google-apps-script google-sheets triggers spreadsheet


【解决方案1】:

将此函数复制并运行到绑定到工作簿 B 的脚本中:

function copyData() {
  var workbookB = SpreadsheetApp.getActiveSpreadsheet();
  var sheetsB = workbookB.getSheets();
  var sheetA = SpreadsheetApp.openById('workbook_A_id').getSheetByName('Sheet1');
  sheetA.clear(); // This deletes all data in WBA before copying everything from WBB, use this only if you don't want all data to be duplicated all the time.
  for(var index = 0; index < sheetsB.length; index++) {
    var lastRow = sheetA.getLastRow() + 1;
    var valuesB = sheetsB[index].getRange(1, 1, 1, 3).getValues();
    var rangeA = sheetA.getRange(lastRow, 1, 1, 3);
    rangeA.setValues(valuesB);
  }
}

【讨论】:

  • 首先,非常感谢您的回复!!!!我无语了,伙计.. 现在,在跟踪和尝试代码后我有一个问题,这仅适用于 1 个单元格值,但是如果我同时想要多个单元格值怎么办?即(来自源表)C8、J9、L34、L60、L89 ......并在 A1(C8 到这里)、B1(J9 到这里)、C1(L34 到这里)中相应地返回它们的值(在目标表中)和以此类推,每组分组的结果都在自己的行中。再次感谢伙计,非常感谢
  • 没关系^_^,我发现了一个我以前在大学里做的懒惰的工作:D,我在不同的变量中定义了我想要的所有单元格,并将它的正确索引放在 getrange() 函数中,并且它在另一张纸上惊人地返回了它,非常感谢你,你让我开心!!!:))) 如果有更有效的方法来动态处理这个问题,请告诉我!
  • @Samy 很高兴我的回答对您有所帮助。现在,出于文档目的,如果我的回答对您有用并且做了您在原始帖子中描述的您想要做的事情,请将此问题标记为已解决并创建另一个准确描述您现在想要做的事情。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多