![](/img/trans.png)
[英]Google Script to copy specific columns from one sheet to another sheets last row onEdit
[英]copy active row From one sheet to another google sheets
我在将单行复制到带有Google表格的第二张表格时遇到问题。
我正在使用Google脚本编辑器发送自动的电子邮件更新,效果很好。 但是,我现在正尝试记录特定列中的每个更新。 我需要该行中的所有信息才能与被编辑的单元格一起移动。
每行是一个单独的作业站点,我一次最多可以同时运行30个并发作业站点。 因此更新可能会出现在单元格“ M3”或“ M28”中
我想做的是仅捕获已编辑的行,而不捕获整个工作表。 我当前的代码正在复制整个工作表。 我在如何仅将单行定义为活动并将其设置为范围上画了一个空白。
这就是我所拥有的。 我不是Java脚本程序员,但是搜索该站点已经使我走到了这一步。 裸露的代码并不完美。
function sendupdate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = '';
var message = '';
var techname = '';
var branchname = '';
var city = '';
var state = '';
var technumber = '';
if(cell.indexOf('M')!=-1){
message = sheet.getRange('B'+ sheet.getActiveCell().getRowIndex()).getValue()
techname = sheet.getRange('N'+ sheet.getActiveCell().getRowIndex()).getValue()
branchname = sheet.getRange('H'+ sheet.getActiveCell().getRowIndex()).getValue()
city = sheet.getRange('J'+ sheet.getActiveCell().getRowIndex()).getValue()
state = sheet.getRange('K'+ sheet.getActiveCell().getRowIndex()).getValue()
recipients = "(emailaddress";
var subject = ' Update: ' +techname + ' ' + message + ' ' + city + ' ' + branchname +' ' ;
var body = ': ' + message + ' Technician: « ' + techname + ' » New Update: « ' + cellvalue + ' » has been posted to the Update Sheet Visit ' + ss.getUrl() + ' to view the changes on row: ' + row + '';
MailApp.sendEmail(recipients, subject, body);
var target_sheet = ss.getSheetByName('Log')
var last_row = target_sheet.getLastRow();
target_sheet.insertRowAfter(last_row);
sheet.getRange('A:P').copyTo(target_sheet.getRange('A'+(last_row+1)+':P'+(last_row+1)));
}
debugger
通过调用getRange(row, column, numRows
)获取活动行的Range
。 然后,您可以使用该范围将其复制到其他工作表
这是我添加的代码,使其起作用
var target_sheet = ss.getSheetByName('Log')
var last_row = target_sheet.getLastRow();
var activeRow = sheet.getRange( row ,1, 1 ,16)
target_sheet.insertRowAfter(last_row);
activeRow.copyTo(target_sheet.getRange('A'+(last_row+1)+':P'+(last_row+1)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.