首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据从一个工作表复制到另一个电子表格,排除特定列。

将数据从一个工作表复制到另一个电子表格,排除特定列。
EN

Stack Overflow用户
提问于 2016-04-01 02:58:18
回答 2查看 3.6K关注 0票数 0

我找到了脚本,并成功地将值从母版表复制到另一个名为“煮熟”的表中。问题是它复制了母版表中的所有数据,我只想从特定列中复制值,比如A列、C列、D列、F列(B&E除外)和自动排列到目标表。

我的代码执行是有限的,但我能够从您那里学习(复制)来理解它:)

代码语言:javascript
运行
复制
function copyTo(source,destination) {
  var sourceSheet = source.getSheet();
  var destSheet = destination.getSheet();
  var sourceData = source.getValues();
  var dest = destSheet.getRange(
    destination.getRow(),        // Top row of destination
    destination.getColumn(),     // left col of destination
    sourceData.length,           // # rows in source
    sourceData[0].length);       // # cols in source (elements in first row)
  dest.setValues(sourceData);
  SpreadsheetApp.flush();
}

function copySheet() {
   var sourceSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
   var destSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");

  var source = sourceSheet.getRange("A:N");
  var destination  = destSheet.getRange("A:N");
  copyTo(source,destination );
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-01 05:29:40

在您的copySheet函数中,您可以看到复制需要Range A:N。如果更改此部分,则可以复制所需的范围。

既然你想复制一组不连续的列,我建议你这样做。

代码语言:javascript
运行
复制
function copySheet() {
  var sourceSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Total");
  var destSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cooked");

  var columns_to_be_copied = ['A', 'C', 'D', 'F'];
  var columns_to_be_pasted = ['A', 'B', 'C', 'D'];

  for (column in columns_to_be_copied) {

    var copy_range_string = columns_to_be_copied[column] + ':' + columns_to_be_copied[column];
    var paste_range_string = columns_to_be_pasted[column] + ':' + columns_to_be_pasted[column];

    var source = sourceSheet.getRange(copy_range_string);
    var destination  = destSheet.getRange(paste_range_string);
    copyTo(source,destination );
  }
}

我们将所有要复制的列存储在一个变量中,迭代它们并生成copy_range_stringspaste_range_strings的formant A:AC:C等,然后调用这些范围上的copyTo方法。现在您可以编辑columns_to_be_copiedcolumns_to_be_pasted,对数据进行更改,从哪一列转到哪一列。

票数 2
EN

Stack Overflow用户

发布于 2017-08-16 09:13:21

代码语言:javascript
运行
复制
//Copying data from sheet 2 to sheet 1

var sourceSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2");

var destSheet  = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  sourceSheet.getRange("E:G").copyTo(destSheet.getRange("E:G"), {contentsOnly:true});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36347257

复制
相关文章

相似问题

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