2016-09-14 4 views
0

私は、機能を呼び出すためのボタンのように動作するようにGoogleのシートでデータ検証を使用しています。 1つのオプションは、すべてのデータを消去するようにスプレッドシートをリセットすることです(call reset()関数)。別のオプションは、スプレッドシートを保存することです(saveAs()関数を呼び出す)。 reset()とsaveAs()を実行すると、両方の関数が正常に動作します。私のonEdit関数も同様に機能し、スプレッドシートのセルにどの選択をするかによってreset()とsaveAs()を呼び出します。Appsスクリプトのデータ検証機能ボタン

私の問題は、saveAs()関数がonEdit()関数から呼び出されたときにのみ完了しないということです。それ自身の上で呼び出されると、それは結構ですが、のonEdit(から呼び出された場合)には、このラインでハングアップを取得します

var parentFolder = DriveApp.getFileById(thisFileId).getParents().next(); 

ここでは全体の機能

function saveAs(){ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var d = new Date(); 

    var thisFileId = SpreadsheetApp.getActive().getId(); 
    var parentFolder = DriveApp.getFileById(thisFileId).getParents().next(); 
    DriveApp.getFileById(sheet.getId()).makeCopy(d+"", parentFolder); 

} 

は、私はすべてのために非常に感謝されるです解説および/または解決策!

ありがとうございます。

答えて

1

なぜなら、onEditアプリケーションのスクリプトトリガーは「インストール可能なトリガー」ではなく「シンプルなトリガー」であるためです。つまり、ファイルやディレクトリを変更するアクセス権がないため、DriveAppクラスが呼び出されたときにハングアップしているように見えます。

これを修正するために、私はsaveAs関数を呼び出すためのインストール可能なonEditのようなトリガを作成しました。

関連する問題