2017-07-18 22 views
3

私の同僚と私は教師であり、プログラミングの背景はあまりありません。 GoogleはフォームフィードのスプレッドシートからGoogleカレンダーの予定を作成するスクリプトをまとめました。しかし、私たちはトリガを働かせることはできません。Google Appsスクリプトでの編集トリガーでの書き込み

信頼できない可能性があるため、時間ベースのトリガからの移行を提案している人が多く、独自のトリガを作成したいと考えています。研究の後、それはonEdit(e)のトリガーが最高だと思われますが、条件付きで動作させることはできません。承認欄に「はい」(13桁目)が表示されている場合にのみスクリプトを実行してください。

これまで私が見てきたことから、おそらくこれを完全に別のやり方(おそらくgetValue)で行う必要があるように見えるので、ここで皆に助けを求めています。それはとてもシンプルでなければならないようです! FYI findRowが動作してカレンダーイベントを作成するので、列13が「はい」の場合はfindRowを実行するだけで済みます。

何か助けていただければ幸いです。コードは次のとおりです。

function onEdit(e) { 
    var range = e.range; 
    var colToCheck = 13; 
    if (colToCheck = "Yes"); 
    findRow; 
}; 
+1

フォーム送信からスプレッドシートを変更してもonEditイベントがトリガーされないことに気づいていますか? – Cooper

+2

平等テストの場合は、二重または三重等号のいずれかを使用する必要があります。あなたは一つの等号を使っています: 'if(colToCheck =" Yes ")'一つの等号が "代入演算子"なので、変数 "colToCheck"に値 "Yes"を代入します。あなたは平等をテストしていません。初心者としてできることは、トラブルシューティングガイドを読むことです。 [Appsスクリプトドキュメントへのリンク](https://developers.google.com/apps-script/guides/support/troubleshooting) –

答えて

2

findRow()が何をするのか分かりません。しかし、私はこれがあなたが達成しようとしていたものだと思います。私は最初のトリガーを勉強し始めたとき、私はトリガーを持って、一時間のちょうど3日後のたびに、私が言うように、私は72本のログメインディッシュを持っていたトリガログエントリを作ったルーチンを書いところで

function onEdit(e) 
{ 
    var ss= e.source; 
    var sht=ss.getActiveSheet(); 
    var range = e.range; 
    var row = range.getRow(); 
    var approval = sht.getRange(row,13).getValue(); 
    if (approval=="Yes") 
    { 
    findRow(); 
    } 
} 

彼らは非常に信頼できると思います。

関連する問題