问:Google表格脚本“内部错误:无法转换为(类)”

时间:2016-09-18 13:57:21

标签: google-apps-script google-sheets spreadsheet

我为我的电子表格编写了一个Google脚本(大量复制/粘贴在线),如果日期与当前日期匹配(每天运行一次),则会将一行数据从一个工作表传输到另一个工作表。代码工作,第24行有一个例外,我得到一个错误“无法将XXX转换为(类)”,而XXX表示该行中的数据。看起来它可能与我如何定义变量source_range有关,但我无法让它工作!任何帮助深表感谢。目标是在for循环中,它根据变量i复制“当前”数据行。如果我将source_range参数更改为静态(例如第3行),它可以完美地工作....但是当然它每次只会粘贴第3行,这不是我想要的。有任何建议帮助!

    function AutomationEnroll() {
      try{

    var spreadsheet = SpreadsheetApp.openById("XXXHIDDENXXX");
    var source_sheet = SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()  [2]);
    var target_sheet = SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[3]);


    var startRow = 2;  // First row of data to process
    var numRows = source_sheet.getLastRow()-1;   // Number of rows to process
    var dataRange = source_sheet.getRange(startRow, 1, numRows, source_sheet.getLastColumn());
    // Fetch values for each row in the Range.
    var data = dataRange.getValues();

    for (i in data) {
      var row = data[i];
      //Logger.log(sheetDate);
      var TodayDate = Utilities.formatDate(new Date(),'GMT','EEE, d MMM yyyy')
      var SurgeryDate = Utilities.formatDate(new Date(row[1]),'GMT', 'EEE, d MMM yyyy')

      if (TodayDate == SurgeryDate){

      //I now need it to copy row[i] in sheet[2] over to the last_row in sheet[3]  ;
        var source_range = source_sheet.getRange(data[i], 1, 1, 12)    //error converting to (class)                                     
        var last_row = target_sheet.getLastRow();
        target_sheet.insertRowAfter(last_row);
        var target_range = target_sheet.getRange("A"+(last_row+1)+":L"+(last_row+1));
        source_range.copyTo(target_range);

       }    
     }
   }catch(err){
     Logger.log(err.lineNumber + ' - ' + err);
   }
}`

0 个答案:

没有答案