2016-09-18 7 views
0

Ich habe Probleme beim Kopieren einer einzelnen Zeile auf ein zweites Blatt mit Google-Blättern.aktive Zeile kopieren Von einem Blatt zum anderen google sheets

Ich benutze Google Skript-Editor, um automatisierte E-Mail-Updates zu senden, die gut funktioniert. Ich versuche jedoch, jedes Update von bestimmten Spalten zu protokollieren. Ich brauche alle Informationen in der Reihe, um mit der Zelle, die bearbeitet wird, zu bewegen.

Jede Zeile ist eine separate Job-Site und ich habe bis zu 30 gleichzeitige Job-Sites auf einmal. So kann das Update in Zelle "M3" oder "M28" kommen

Was ich versuche, ist nur die Zeile erfassen, die nicht das gesamte Blatt bearbeitet wird. Mein aktueller Code kopiert das gesamte Blatt. Ich zeichne ein Leerzeichen darüber, wie man die einzelne Zeile als aktiv definiert und auf einen Bereich setzt.

Hier ist was ich habe. Ich bin kein Java Script Programmierer, aber die Suche auf dieser Seite hat mich soweit gebracht. Bare mit dem Code ist nicht perfekt.

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 

Antwort

0

Hier den Code I hinzugefügt wird, zu kopieren, die es

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))); 
Arbeit gemacht
Verwandte Themen