[英]Copy multiple rows from a spreadsheet to another spreadsheet
I'm writing a script that copy a selected row from a spreadsheet to another spreadsheet, from the column A to the column D.我正在编写一个脚本,将电子表格中的选定行复制到另一个电子表格,从 A 列到 D 列。
It works fine.它工作正常。
The problems are 3:问题是3:
Sent
for the rows copied.Sent
的值。 Thanks in advance.提前致谢。
function main() {
transfer("....", "Foglio1", "Foglio1");
}
function transfer(targetId, sourceSheetName, targetSheetName) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName(sourceSheetName);
var last = sourceSheet.getActiveRange().getRow();
var data = sourceSheet.getRange(last, 1, 1, 4).getValues();
// copy data
var ss2 = SpreadsheetApp.openById(targetId);
var targetSheet = ss2.getSheetByName(targetSheetName);
//get last row
var lastRow = targetSheet.getLastRow();
//write data
targetSheet.getRange(lastRow + 1, 1, data.length, data[0].length)
.setValues(data);
}
Please have a look at the arguments of getRange :请看一下getRange的参数:
Replace代替
var data = sourceSheet.getRange(last, 1, 1, 4).getValues();
with和
var data = sourceSheet.getRange(last, 3, 1, 3).getValues();
You can use getHeight to find the number of rows selected and pass it to getRange
:您可以使用getHeight查找选定的行数并将其传递给
getRange
:
var height = sourceSheet.getActiveRange().getHeight();
var data = sourceSheet.getRange(last, 3, height, 3).getValues();
You can just set the values of column H to Sent
for the selected rows:您只需将 H 列的值设置为所选行的已
Sent
:
sourceSheet.getRange(last, 8, height).setValue('Sent');
function main() {
transfer("....", "Foglio1", "Foglio1");
}
function transfer(targetId, sourceSheetName, targetSheetName) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName(sourceSheetName);
var last = sourceSheet.getActiveRange().getRow();
var height = sourceSheet.getActiveRange().getHeight();
var data = sourceSheet.getRange(last, 3, height, 3).getValues();
// copy data
var ss2 = SpreadsheetApp.openById(targetId);
var targetSheet = ss2.getSheetByName(targetSheetName);
//get last row
var lastRow = targetSheet.getLastRow();
//write data
targetSheet.getRange(lastRow + 1, 3, data.length, data[0].length)
.setValues(data);
sourceSheet.getRange(last, 8, height).setValue('Sent');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.