【问题标题】:Loop opening a spreadsheet, and copying from sheet a to sheet b循环打开电子表格,并从工作表 a 复制到工作表 b
【发布时间】:2019-09-08 00:10:31
【问题描述】:

我就是不明白问题出在哪里,

必须超级简单,但这不起作用。

很抱歉提出新蜜蜂问题。

function GoGetData() {
var ss =  
SpreadsheetApp.openById("1tyfIzGNDZr4JK9kYwABDMLBvK7B3jJ4r2wQfMOIPd3I");
SpreadsheetApp.setActiveSpreadsheet(ss);
var sheet = ss.getSheetByName('List des dossiers du Folder') // Sheet=liste des dossiers

for(var i=1; i>3; i++) 
{      
Logger.log(i);



var IdShpread = sheet.getRange(i,2,1,1); // va prender l,adresse de La sheet

var source = SpreadsheetApp.openById(IdShpread); // open la sheet avec les data

var sourcesheet = source.getSheetByName('regroup');

var targetsheet = source.getSheetByName('worksheet');

// Copy de l'ensemble de la Sheet
var rangeValues = sourcesheet.getRange("A1:L1000").copyTo(targetsheet.getRange("A1:L1000"), {contentsOnly: true});

  //pour copier seulement certaines parties a netraliser apres
  //var rangeValues = sourcesheet.getRange("D7:K7").copyTo(targetsheet.getRange("D7:K7"), {contentsOnly: true});
}
}

【问题讨论】:

  • for 循环中的i>3 有问题。
  • 是的...好吧,耻辱不会杀死。谢谢!

标签: javascript for-loop google-apps-script google-sheets


【解决方案1】:

要检索位于区域单元格中的工作表 ID,您需要使用方法 getValue()。修改你的脚本如下:

function GoGetData() {
var ss =  SpreadsheetApp.openById("1tyfIzGNDZr4JK9kYwABDMLBvK7B3jJ4r2wQfMOIPd3I");
var sheet = ss.getSheetByName('List des dossiers du Folder') // Sheet=liste des dossiers
for(var i=1; i<=3; i++) {      
 var IdShpread = sheet.getRange(i,2,1,1).getValue(); // va prender l,adresse de La sheet
 var source = SpreadsheetApp.openById(IdShpread); // open la sheet avec les data
 var sourcesheet = source.getSheetByName('regroup');
 var targetsheet = source.getSheetByName('worksheet');
 sourcesheet.getRange("A1:L1000").copyTo(targetsheet.getRange("A1:L1000"), {contentsOnly: true});
 }
}

【讨论】:

    【解决方案2】:

    试试这个:

    function GoGetData() {
      var ss=SpreadsheetApp.openById("1tyfIzGNDZr4JK9kYwABDMLBvK7B3jJ4r2wQfMOIPd3I");
      var sh=ss.getSheetByName('List des dossiers du Folder');
      for(var i=1;i<3;i++) {      
        Logger.log(i);
        var IdShpread=sh.getRange(i,2,1,1);
        var source=SpreadsheetApp.openById(IdShpread);
        var sourcesheet=source.getSheetByName('regroup');
        var targetsheet=source.getSheetByName('worksheet');
        sourcesheet.getRange("A1:L1000").copyTo(targetsheet.getRange("A1:L1000"), {contentsOnly: true});
      }
    }
    

    【讨论】:

    • 如何回答这个问题?
    • 您可以解释为什么 OP 代码不起作用,和/或您的代码做了什么以及为什么起作用,和/或您对 OP 代码做了哪些更改...
    猜你喜欢
    • 1970-01-01
    • 2010-10-30
    • 2013-07-12
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    相关资源
    最近更新 更多