[英]Copy only active row from one spreadsheet to another
I want to create a script to copy the active row of a sheet(TIME MACHINE) to another Google spreadsheet's sheet(Database). 我想创建一个脚本,将工作表(TIME MACHINE)的活动行复制到另一个Google电子表格的工作表(数据库)。 I also want to send "1" to the 13 row of the copied row.
我也想向复制的行的13行发送“ 1”。 It would be great if anyone can guide me.
如果有人可以指导我,那就太好了。 The code given below only works to copy within the same spreadsheet.
下面给出的代码仅可在同一电子表格中进行复制。
function endTime() {
transfer("1E3CWWohirN4DD_f_23WWBElYrhqnAs_27crrxowFjFA", "TIME MACHINE", "TIME MACHINE2")
}
function transfer(targetId, sourceSheetName, targetSheetName) {
var d = new Date();
var offset = -d.getTimezoneOffset()/60;
var h = d.getHours();
var h = h >= 13? h - 12: h;
h = h == 0? 12: h;
var m = m < 10? "0" + d.getMinutes(): d.getMinutes();
var s = d.getSeconds();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName(sourceSheetName);
var last = sourceSheet.getActiveRange().getRow();
var data = sourceSheet.getRange(last, 1, 1, 14).getValues();
var time1 = h + ":" + m + ":" + s;
sourceSheet.getRange(last, 28).setValue(time1);
var tamma = sourceSheet.getRange(last, 11).getValue();
// 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);
//write "1" into column 13
targetSheet.getRange(lastRow + 1, 13, data.length, 1).setValue("1");
targetSheet.getRange(lastRow + 1, 11, data.length, 1).setValue(tamma);
}
your code just needs a little reorganization and you need to get the right data from the source-sheet. 您的代码只需要进行一些重组,就需要从源工作表中获取正确的数据。
this should work: 这应该工作:
function main() {
transfer("1mEluY-_K9oBvbxzASKn25YZ8BgF_naLl0XNitb4zIA8", "Sheet1", "Sheet1");
}
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, 14).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);
//write "1" into column 13
targetSheet.getRange(lastRow + 1, 13, data.length, 1)
.setValue("1")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.