【问题标题】:Copying data from one spreadsheet to another Google Sheet将数据从一个电子表格复制到另一个 Google 表格
【发布时间】:2018-12-20 22:57:02
【问题描述】:

我一直无法将任何内容从已关闭的 Google 表格复制到打开的表格中。 这是我尝试的脚本,调试器没有通过第 2 行:

function lloydsRestore() {
    var ss =SpreadsheetApp.openById("1ZRHHA1fcXXCXwD4nCjjtIg67DHvtm5pLjmwzJiD3ZgA").getActiveSheet();
    var ls = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Lloyds');
    var values= ls.setActiveSelection("A1:T72").getvalues;

    var bs = App.getActiveSpreadsheet().getSheetByName('BS');
    var bsput = bs.getRange("A1:T72").setValues(values);
}

【问题讨论】:

  • 调试器显示什么错误? ss 是做什么用的?您在第 2 行定义它,但从不使用它。哪个工作表“关闭”,哪个工作表“打开”?

标签: google-apps-script google-sheets


【解决方案1】:

您快到了 - 只是您的脚本中存在一些误解。

您正在打开工作表 (ss),因此您使用 ss.getSheetByName(...) 而不是 SpreadsheetApp.getActiveSheet().getSheetByName(...)

您没有正确调用 getValues - 您需要 ()

function lloydsRestore() {

    var ss =SpreadsheetApp.openById('1ZRHHA1fcXXCXwD4nCjjtIg67DHvtm5pLjmwzJiD3ZgA');
    var ls = ss.getSheetByName('Lloyds');
    var values = ls.getRange('A1:T72').getValues();

    var bs = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('BS');
    var bsput = bs.getRange('A1:T72').setValues(values);
}

但是,您可能不需要为此编写脚本,因为 IMPORTRANGE 函数的功能与您的功能完全相同。将以下内容放入单元格中,您将导入您的值。

=IMPORTRANGE('https://docs.google.com/spreadsheets/d/1ZRHHA1fcXXCXwD4nCjjtIg67DHvtm5pLjmwzJiD3ZgA', 'Lloyds!A1:T72')

【讨论】:

  • 现在我明白了!我避免了 importrange 方法,因为我想通过菜单包含依赖选择,但考虑到它,我可以通过将它包含在 If() 中来使导入非常依赖
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 2016-10-06
  • 2012-06-10
  • 2013-11-16
  • 2019-08-22
相关资源
最近更新 更多