首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >批量将复制的范围应用于多个工作表

批量将复制的范围应用于多个工作表
EN

Stack Overflow用户
提问于 2020-09-11 07:33:57
回答 1查看 44关注 0票数 0

我目前有一个脚本,用于将大量更改应用于多个电子表格

代码语言:javascript
运行
复制
function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [];
  menuEntries.push({name: "Update Sheets", functionName: "updateSheets"});
  ss.addMenu("Actions", menuEntries);
}


function ChangesAug1() {
 var data = SpreadsheetApp.openById('XXX').getSheetByName('ListOfSheetsToBeUpadated').getDataRange().getValues();    
  for (var row = 2; row < data.length; row++ ) {
    var spreadsheet = SpreadsheetApp.openById(data[row][0]).getSheetByName('Template');

我还有另外一个脚本,用来将范围从一个电子表格复制粘贴到另一个电子表格

代码语言:javascript
运行
复制
var sss = SpreadsheetApp.openById('SourceID'); //replace with source ID
 var ss = sss.getSheetByName('TemplateSheet'); //replace with source Sheet tab name
 var range = ss.getRange('A1:EJ5'); //assign the range you want to copy
 var data = range.getValues();

 var tss = SpreadsheetApp.openById('DestID'); //replace with destination ID
 var ts = tss.getSheetByName('DestSheet'); //replace with dest
 ts.getRange(ts.getLastRow()+1, 1,5,140).setValues(data); //you will need to define the size of the copied data see getRange()ination Sheet tab name

你知道我如何组合这两个脚本来批量应用从一张图纸到一张图纸列表的复制范围吗?

感谢您的回复:)

EN

回答 1

Stack Overflow用户

发布于 2020-09-11 18:30:31

您应该只创建一个函数,用于将所需的数据从一个工作表复制到另一个工作表,然后在访问正在使用的for循环中的工作表时调用此函数。

因此,您可以使用类似以下内容:

代码语言:javascript
运行
复制
function copyFromOneSheetToAnother(var sourceSheet,
   var destinationSheet) {
   var range = sourceSheet.getRange('A1:EJ5');
   var data = range.getValues();
   destinationSheet.getRange(ts.getLastRow() + 1, 1, 5, 140).setValues(data);
}

上面的函数需要两个参数:sourceSheetdestinationSheet。至于调用这个函数,你可以使用下面的代码:

代码语言:javascript
运行
复制
function ChangesAug1() {
   var data = SpreadsheetApp.openById('XXX').getSheetByName('ListOfSheetsToBeUpadated').getDataRange().getValues();
   for (var row = 2; row < data.length; row++) {
      var spreadsheet = SpreadsheetApp.openById(data[row][0]).getSheetByName('Template');
      //get THE_DESTINATION_SHEET as well
      copyFromOneSheetToAnother(spreadsheet, THE_DESTINATION_SHEET);
   }
}

参考文献

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

https://stackoverflow.com/questions/63838939

复制
相关文章

相似问题

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