我为我的电子表格编写了一个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);
}
}`