以下功能用于循环浏览Google Sheet文件的“POTemplate”标签,并从第24行开始获取多个值,并将其列在同一文件的单独“POHistory”标签中。目前,它只是从第24行抓取这些细节,并将它们发布到'POHistory'选项卡10次。相反,我需要它从仅从第24行到第34行的POTemplate中填充的那些单元格获取值,并且每个条目一次发布到“POHistory”。希望我很清楚。
function Submit() {
var app = SpreadsheetApp;
var orderSheet =
app.getActiveSpreadsheet().getSheetByName("POTemplate");
var i = 24;
for(i = 24; i<= 34; i++) {
var poNO = orderSheet.getRange("h2").getValue();
var poDate = orderSheet.getRange("h3").getValue();
var vendor = orderSheet.getRange("c12").getValue();
var skuNo = orderSheet.getRange(i, 3).getValue();
var skuDesc = orderSheet.getRange(i, 4).getValue();
var qty = orderSheet.getRange(i, 5).getValue();
var uom = orderSheet.getRange(i, 6).getValue();
var utCost = orderSheet.getRange(i, 7).getValue();
var extCost = orderSheet.getRange(i, 8).getValue();
var targetSheet = app.getActiveSpreadsheet().getSheetByName("POHistory");
var nextRow = targetSheet.getLastRow() + 1;
targetSheet.getRange(nextRow, 1).setValue(poNO);
targetSheet.getRange(nextRow, 2).setValue(poDate);
targetSheet.getRange(nextRow, 3).setValue(skuNo);
targetSheet.getRange(nextRow, 4).setValue(skuDesc);
targetSheet.getRange(nextRow, 5).setValue(qty);
targetSheet.getRange(nextRow, 6).setValue(uom);
targetSheet.getRange(nextRow, 7).setValue(utCost);
targetSheet.getRange(nextRow, 8).setValue(extCost);
}}
答案 0 :(得分:1)
试试这个:
function Submit() {
var ss=SpreadsheetApp.getActive();
var osh=ss.getSheetByName('POTemplate');
var tsh=ss.getSheetByName('POHistory');
var rg=osh.getDataRange();
var vA=rg.getValues();
var poNO=vA[1][7];
var poDate=vA[2][7];
var vendor=vA[11][2];
for(var i=24;i<=34;i++){
var skuNo=vA[i-1][2];
var skuDesc=vA[i-1][3];
var qty=vA[i-1][4];
var uom=vA[i-1][5];
var utCost=vA[i-1][6];
var extCost=vA[i-1][7];
tsh.appendRow([poNO,poDate,skuNo,skuDesc,qty,uom,utCost,extCost]);
}
}