2016-09-18 123 views
0

我无法复制单行到谷歌工作表的第二张纸。复制活动行从一张纸到另一张谷歌纸张

我正在使用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 

回答

0

下面是我加入了代码,使工作

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))); 
相关问题