2017-09-19 25 views
1

私は、あるスプレッドシートの変更を検出し、同じ正確なセル位置の別のスプレッドシートにコピーする機能を持っています。私はまず、sheetAPIで提供されているonEdit(e)関数を使ってこれを実行しようとしましたが、組み込み関数から新しいスプレッドシートを開く権限がないというエラーが発生し続けました。私は自分のトリガーを設定しようとしましたが、OnEditトリガーをその関数に割り当てたとしてもアクティブになりません。oneditトリガーがインストールされていない

function ChangeDetect(e){ 
var range = e.range 
var esheet = SpreadsheetApp.getActiveSheet() 
var ss = SpreadsheetApp.getActiveSpreadsheet() 
var sheet = ss.getSheets()[1]; 
// literally, if the edit was made in the first sheet of the spreadsheet, do the following: 
if (esheet.getIndex() == ss.getSheets()[0].getIndex()){ 
var numrows = range.getNumRows(); 
var numcols = range.getNumColumns(); 
for (var i = 1; i <= numrows; i++) { 
for (var j = 1; j <= numcols; j++) { 
    var currentValue = range.getCell(i,j).getValue(); 
    var cellRow = range.getCell(i,j).getRow(); 
    var cellCol = range.getCell(i,j).getColumn(); 



var ss3 = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1K2ifzjPTATH77tV4xInh0Ga2SuPsLdgNRSbekjDx-w8/edit#gid=0') 
var sheet3 = ss3.getSheets()[0]; 
sheet3.getRange(cellRow,cellCol).setValue(currentValue) 
} 
} 
} 
} 
+0

トリガを作成するのではなく、onEdit(e)トリガを使用することをお勧めします。 'onEdit'トリガを使ってみると、ここにエラーを投稿してください。 –

答えて

0

私はあなたがlimitation/restrictions of installable triggersを経験することができると思う:自動的に単純なトリガーの火災ので

制限

は、認可のためにユーザーを求めることなく、彼らはいくつかの制限があります。

  • スクリプトは、Googleスプレッドシート、ドキュメント、またはフォームファイルにバインドする必要があります。
  • ファイルが読み取り専用(ビューまたはコメント)モードで開かれている場合、これらは実行されません。
  • 許可を必要とするサービスにアクセスすることはできません。たとえば、Gmailサービスでは認証が必要なため、簡単なトリガーでメールを送信することはできませんが、単純なトリガーでは匿名の - 言語サービスでフレーズを翻訳できます。
  • バインドされているファイルは変更できますが、許可が必要なため他のファイルにアクセスすることはできません。
  • セキュリティ制限の複雑なセットに応じて、現在のユーザーの身元を判断することも、できないこともあります。
  • 30秒以上は実行できません。
  • Googleシート、ドキュメント、フォームのアドオンを実行すると、いくつかの追加の問題が発生する非認証モードのonOpen(e)およびonEdit(e)シンプルトリガーが実行されます。詳細については、アドオンの認可ライフサイクルのガイドを参照してください。 これらの制限は、doGet()またはdoPost()には適用されません。
関連する問題