2017-06-08 114 views
0

我正在處理電子表格,我需要使用兩個腳本,但是我只能在使用「腳本編輯器」時使用這兩個腳本。我不知道如何合併這兩個腳本,以便它們在編輯單元時同時工作。非常感謝您的幫助!這兩個腳本如下。將兩個腳本合併爲一個Google工作表

****第一個****

/** 
* Automatically sorts the 1st column (not the header row) Ascending. 
*/ 
function onEdit(event){ 
    var sheet = event.source.getActiveSheet(); 
    var editedCell = sheet.getActiveCell(); 

    var columnToSortBy = 4; 
    var tableRange = "A2:T99"; // What to sort. 

    if(editedCell.getColumn() == columnToSortBy){ 
    var range = sheet.getRange(tableRange); 
    range.sort({ column : columnToSortBy, ascending: false }); 
    } 
} 

****第二個:*****

function onEdit(event) 
{ 
    var timezone = "UTC-5"; 
    var timestamp_format = "mm-dd-yyyy'Time:' hh:mm:ss"; 
    var updateColName = "Parent Sign-Out"; 
    var timeStampColName = "Timestampt"; 
    var sheet = event.source.getSheetByName('Sheet1, Sheet2'); //Name of the sheet where you want to run this script. 


    var actRng = event.source.getActiveRange(); 
    var editColumn = actRng.getColumn(); 
    var index = actRng.getRowIndex(); 
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
    var dateCol = headers[0].indexOf(timeStampColName); 
    var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1; 
    if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself! 
    var cell = sheet.getRange(index, dateCol + 1); 
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format); 
    cell.setValue(date); 
    } 
} 

} 

回答

0

,你問你可以將它們結合起來:

/** 
 
* Automatically sorts the 1st column (not the header row) Ascending. 
 
*/ 
 
function onEdit(event){ 
 
    var sheet = event.source.getActiveSheet(); 
 
    var editedCell = sheet.getActiveCell(); 
 

 
    var columnToSortBy = 4; 
 
    var tableRange = "A2:T99"; // What to sort. 
 

 
    if(editedCell.getColumn() == columnToSortBy){ 
 
    var range = sheet.getRange(tableRange); 
 
    range.sort({ column : columnToSortBy, ascending: false }); 
 
    } 
 
    // 2nd script 
 
    var timezone = "UTC-5"; 
 
    var timestamp_format = "mm-dd-yyyy'Time:' hh:mm:ss"; 
 
    var updateColName = "Parent Sign-Out"; 
 
    var timeStampColName = "Timestampt"; 
 
    var sheet = event.source.getSheetByName('Sheet1, Sheet2'); //Name of the sheet where you want to run this script. 
 

 

 
    var actRng = event.source.getActiveRange(); 
 
    var editColumn = actRng.getColumn(); 
 
    var index = actRng.getRowIndex(); 
 
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
 
    var dateCol = headers[0].indexOf(timeStampColName); 
 
    var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1; 
 
    if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself! 
 
    var cell = sheet.getRange(index, dateCol + 1); 
 
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format); 
 
    cell.setValue(date); 
 
    } 
 
} 
 
    
 
}

或者你可以稱之爲從onedit功能的第2個功能:

/** 
 
* Automatically sorts the 1st column (not the header row) Ascending. 
 
*/ 
 
function onEdit(event){ 
 
    var sheet = event.source.getActiveSheet(); 
 
    var editedCell = sheet.getActiveCell(); 
 

 
    var columnToSortBy = 4; 
 
    var tableRange = "A2:T99"; // What to sort. 
 

 
    if(editedCell.getColumn() == columnToSortBy){ 
 
    var range = sheet.getRange(tableRange); 
 
    range.sort({ column : columnToSortBy, ascending: false }); 
 
    } 
 
    onEdit2(); 
 
} 
 

 

 
function onEdit2(event){ 
 
    var timezone = "UTC-5"; 
 
    var timestamp_format = "mm-dd-yyyy'Time:' hh:mm:ss"; 
 
    var updateColName = "Parent Sign-Out"; 
 
    var timeStampColName = "Timestampt"; 
 
    var sheet = event.source.getSheetByName('Sheet1, Sheet2'); //Name of the sheet where you want to run this script. 
 

 

 
    var actRng = event.source.getActiveRange(); 
 
    var editColumn = actRng.getColumn(); 
 
    var index = actRng.getRowIndex(); 
 
    var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
 
    var dateCol = headers[0].indexOf(timeStampColName); 
 
    var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1; 
 
    if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself! 
 
    var cell = sheet.getRange(index, dateCol + 1); 
 
    var date = Utilities.formatDate(new Date(), timezone, timestamp_format); 
 
    cell.setValue(date); 
 
    } 
 
}