2017-08-05 5 views
0

誰も私を助けてくれますか、それはGoogleシートの自動ソートスクリプトに関するものですか?私は実際にスクリプトに精通していないが、私は何をしようとしている私のテーブル範囲で列Aに入力された日付を自動ソートすることです。私は私のgoogleシート上で試した、それは実際には同じシート上の手動編集で動作する一般的なスクリプトを発見した。 しかし、私のテーブル範囲の値は別のシートのmy(Index、Match)公式の結果なので、別のシートから新しい値が入力されると自動的にソートされません。ここでGoogleのシート上の自動ソートスクリプトonChange trigger

は私のGoogleスプレッドシートにしようとしたサンプルスクリプトです:

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

    var editedCell = sheet.getActiveCell(); 

    var columnToSortBy = 1; 
    var tableRange = "A2:J61"; // What to sort. 
    if(editedCell.getColumn() == columnToSortBy){ 
    var range = sheet.getRange(tableRange); 
    range.sort({ column : columnToSortBy, ascending: true}); 
    } 
} 

誰もが、このスクリプトを変更するために私を導くことができる、...ここで

は、私は「サンプルGoogleスプレッドシートへのリンクですしてください上で動作するようにしようとしメートル:

https://docs.google.com/a/alarmpromotions.org/spreadsheets/d/1IHPwNpAklt_5R6OyxTHMxMbXKkT4WsPBk20saUPbxgw/edit?usp=sharing

+0

を見てみましょうか? –

+0

自動ソートは、同じシート(シート1)の列を手動で編集した場合にのみ機能しますが、シート1の値はシート2からの数式の結果です。 – marby

答えて

0

は、これがトリガーされたときに最初のシートを更新するための補助機能でこれのonEditを試してみてください第2のシートについてはed。

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

    var columnToSortBy = 1; 
    var tableRange = "A2:J61"; // What to sort. 

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

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    if(ss.getSheets()[1] == sheet){ 
     sortFirstSheet(); 
    } 
    } 
} 


function sortFirstSheet(){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    SpreadsheetApp.setActiveSheet(ss.getSheets()[0]); 

    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getRange("A2:J61"); 
    range.sort({ column : columnToSortBy, ascending: true}); 
} 

それがどのようなエラーをスローしないこれらのAPIs

+0

こんにちはRajeev - ありがとうございますそれを今コピーし、それは動作しますが、私はそれを動作させるために実行をクリックしなければならないようです。それはonEditトリガーでなければならないのは正しいのですか? – marby

+0

はい、両方の機能を自動的に呼び出す2番目のシートのonEditトリガーにする必要があります。あなたもコードを理解してくれることを願っています! –

+0

こんにちはRajeev、ありがとうもう一度私はまだスクリプトについて学んでいます。 – marby

関連する問題