0

Googleアプリのスクリプト作成は初めてです。現在、挿入行検出器を作成し、その行の右端の値に基づいて新しい行の値を更新しようとしています。ドキュメント&他のものをオンラインで読むと、私は次のコードを作成しました。しかし、問題はそれが機能しないということです。Googleのアプリケーションスクリプトを使用してGoogleシートの行挿入を検出できませんでしたか?

一般的な行検出器を作成するにはどうすればよいですか、これを修正するにはどうすればよいですか?

コード:

function onChange(e){ 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    sheet.getRange('A1').setBackground('green'); 
    //e.range.setNote('Last modified: ' + new Date().toLocaleTimeString() + ' getActiveUser().getEmail(): ' + Session.getEffectiveUser()); 
    if (e.changeType == "INSERT_ROW") { 
    sheet.getRange('A1').setBackground('red'); 
    // a row or many rows were inserted 

    if (e.source.getActiveSheet().getName() == "UIDAICheck") { 
     // Let's set the formula for calculating the End Date/Time of inserted lines  
     sheet.getRange('A1').setBackground('blue'); 
     var iRow = e.source.getActiveSheet().getActiveRange().getRow(); 
     var iRows = e.source.getActiveSheet().getActiveRange().getNumRows(); 

     var aRange = SpreadsheetApp.getActiveSpreadsheet().getActiveRange(); 
     aRange.setValue('555') 

    } 
    } 
} 

インストールトリガーまたは何かをインストールするような非コード関連の変更がある場合、私は多分でき、自動的に行のセルの値を埋めることができることにだけでなく、それらのドットを接続する方法を共有してください挿入?確かに、私はこの全領域に新しいです。

PS:私はこのコードのどの部分もうまく機能しているとは思いません。これは私の実行記録です:

[17-09-23 13:25:46:950 IST] SpreadsheetApp.getActiveRange() [0 seconds] 
[17-09-23 13:25:46:950 IST] Range.getRow() [0 seconds] 
[17-09-23 13:25:46:950 IST] Range.getLastRow() [0 seconds] 
[17-09-23 13:25:46:950 IST] Range.getColumn() [0 seconds] 
[17-09-23 13:25:46:950 IST] Range.getLastColumn() [0 seconds] 
[17-09-23 13:25:47:049 IST] Session.getActiveUser() [0.098 seconds] 
[17-09-23 13:25:47:050 IST] User.getEmail() [0 seconds] 
[17-09-23 13:25:47:050 IST] SpreadsheetApp.getActiveSpreadsheet() [0 seconds] 
[17-09-23 13:25:47:058 IST] Starting execution 
[17-09-23 13:25:47:103 IST] Execution failed: Script function not found: onEdit [0 seconds total runtime] 
+0

知っていますか? onChange関数の他にコードがありますか?インストールされたトリガーはありますか? –

+0

完全にはわかりません。最初はよく働いたonEditトリガがありましたが、コードエディタの実行ボタンには1つの関数しか選択できないので、削除して実行しました。とにかく、このコードのどの部分も独自のものではなく、以前にこれを行った誰でも簡単に再現することはできません。ちょうど私が何を試みたかを示すためにそれを置く。私はあなたが基本的なコードを新たに書くことができれば、より良いと思います。 – Deepak

答えて

0

私はこれを試していませんが、試してみてください。

のonChangeトリガーをインストール
function MyChange(e){ 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    if(sheet.getRange('A1').getBackground()!='#ff0000') 
    { 
    sheet.getRange('A1').setBackground('#00ff00'); 
    } 
    if (e.changeType == "INSERT_ROW") 
    { 
    sheet.getRange('A1').setBackground('#ff0000'); 
    if (sheet.getName()=="UIDAICheck") 
    { 
     sheet.getRange('A1').setBackground('#0000ff'); 
     sheet.getActiveRange().setValue('555'); 
    } 
    } 
} 

:あなたはのonEditエラーの原因を

enter image description here

関連する問題