首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将单元格从一个电子表格复制到另一个电子表格中的工作表?

如何将单元格从一个电子表格复制到另一个电子表格中的工作表?
EN

Stack Overflow用户
提问于 2019-04-08 08:25:14
回答 1查看 255关注 0票数 0

我正在尝试创建一个脚本,允许用户将突出显示的单元格范围复制到另一个未打开的google sheet文档。如果我要复制数据的工作表在当前文档中,我可以让它工作,但我不知道如何将数据复制到不同的电子表格中。

我尝试过openByIdopenbyUrl,但一直收到以下错误:

“目标范围和源范围必须在同一电子表格中。”

代码语言:javascript
复制
function copyToDifferentDocument() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

// *** Have to figure out how to make the target a different document!!!! ***

  var target = SpreadsheetApp.openById("targetsheetIDgoeshere");
    
  /* 
  Next we need to pick the particular sheets within those spreadsheets.
  Let's say your row is on the sheet named "New Stuff", and you have a sheet in the target spreadsheet named "Archive".
  */

  var source_sheet = ss.getSheetByName("New Stuff");
  var target_sheet = target.getSheetByName("Archive");
    
  // The below makes the highlighted cells the range that will be copied.

  var source_range = source_sheet.getActiveRange();
  var last_row = target_sheet.getLastRow();
  target_sheet.insertRowAfter(last_row);
  var target_range = target_sheet.getRange("A"+(last_row+1)+":G"+(last_row+1));  
  
  // Take the highlighted rant and put it on the last row of the target sheet.
  
  source_range.copyTo(target_range);

}

我正在尝试将突出显示的范围复制到不同google sheet文档中的工作表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-08 08:55:23

要将活动电子表格中“新材料”工作表中的活动区域复制到"targetsheetIDgoeshere"电子表格中“

  • ”工作表中的最后一行

如果我的理解是正确的,那么这个修改如何?我认为你的情况有两种模式。

模式1:

在此模式中,仅复制值。请按如下方式修改。如果您不需要复制格式,则可以使用此方法。

发自:

代码语言:javascript
复制
target_sheet.insertRowAfter(last_row);
var target_range = target_sheet.getRange("A"+(last_row+1)+":G"+(last_row+1));

// Take the highlighted rant and put it on the last row of the target sheet.

source_range.copyTo(target_range);

至:

代码语言:javascript
复制
var values = source_range.getValues();
target_sheet.getRange(last_row + 1, 1, values.length, values[0].length).setValues(values);

模式2:

在此模式中,同时复制值和格式。请按如下方式修改。不幸的是,copyTo()只能将范围复制到同一电子表格上的范围。这种情况也可以在您的问题的错误消息中看到。因此,在此修改中,首先将工作表复制到目标电子表格。然后,复制该范围。

发自:

代码语言:javascript
复制
target_sheet.insertRowAfter(last_row);
var target_range = target_sheet.getRange("A"+(last_row+1)+":G"+(last_row+1));

// Take the highlighted rant and put it on the last row of the target sheet.

source_range.copyTo(target_range);

至:

代码语言:javascript
复制
if (last_row > 0) target_sheet.insertRowAfter(last_row);
var target_range = target_sheet.getRange(last_row + 1, 1);
var copiedsheet = source_sheet.copyTo(target);
copiedsheet.getRange(source_range.getA1Notation()).copyTo(target_range);
target.deleteSheet(copiedsheet);

参考文献:

如果我误解了你的问题,我道歉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55564866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档