2017-04-30 57 views
0

我發現以下在線腳本的一部分用於在添加新內容時在表格內按字母順序排序。腳本對相關列進行排序並使相鄰列保持一致。Google表格文本用於在表格中添加多個表格

但是,我的問題是,這似乎只適用於我的工作表內的一個內容區域。我複製並修改了該腳本,希望能夠在同一張表的兩個表中工作,但只有第二個表可以正常工作。似乎無法找到我所忽略的內容。 TIA尋求幫助!

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

    var columnToSortBy = 4; 
    var tableRange = "B4:F31"; // Area to sort. 
    var columnToSortNext = 3; 

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

/** 
* Automatically sorts the Nth column (not the header row) Ascending. 
*/ 
function onEdit(event2){ 
    var sheet2 = event2.source.getActiveSheet(); 
    var editedCell2 = sheet2.getActiveCell(); 

    var columnToSortBy2 = 9; 
    var tableRange2 = "H4:J31"; // What to sort. 
    var columnToSortNext2 = 8; 

    if(editedCell2.getColumn() == columnToSortBy2){ 
    var range2 = sheet2.getRange(tableRange2); 
    range2.sort([{ column : columnToSortBy2, ascending: true }, {column: columnToSortNext2, ascending: true}]); 
    } 
} 

該代碼最初是爲一個排序實例編寫的。我有兩個活動區域/表格的修改版本不喜歡在這兩個區域工作。 「2」方似乎工作正常。代碼的前半部分沒有。也許是重複變量的問題?謝謝!

+0

你可以添加一個鏈接到測試片材的功能呢? – flamusdiu

+0

您是否真的在腳本中放置了兩個'onEdit()'函數?如果我理解正確,任何時候編輯單元格都需要對兩個表格進行排序。 – k4k4sh1

+0

你正在用另一個覆蓋onEdit,你需要給他們不同的名字或者寫一個通用的分類器,並讓onEdit調用它兩次 –

回答

0

你不能有兩個onEdits。您可以從一個onEdit調用等功能,也可以結合這樣的,如果別人用:

function onEdit(event){ 
    var sheet = event.source.getActiveSheet(); 
    var editedCell = sheet.getActiveCell(); 

    var columnToSortBy = 4; 
    var columnToSortBy2 = 9; 

    if(editedCell.getColumn() == columnToSortBy){ 
    var tableRange = "B4:F31"; // Area to sort. 
    var columnToSortNext = 3; 
    var range = sheet.getRange(tableRange); 
    range.sort([{ column : columnToSortBy, ascending: true }, {column: columnToSortNext, ascending: true}]); 
    } 
    else if(editedCell.getColumn() == columnToSortBy2){ 
    var tableRange2 = "H4:J31"; // What to sort. 
    var columnToSortNext2 = 8; 
    var range2 = sheet.getRange(tableRange2); 
    range2.sort([{ column : columnToSortBy2, ascending: true }, {column: columnToSortNext2, ascending: true}]); 
    } 
    else{ 
     return 
    }} 
相關問題