10

Googleドキュメントスプレッドシートのセルに値を設定しようとしています。Google ScriptのsetValue権限

function exampleFunction() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[0]; 
    var range1 = sheet.getRange("A1"); 
    var value1 = range1.getValue(); 
    value1+=1; 
    range1.setValue(2); 
    return value1; 
} 

私はこのエラーが表示されます。この機能を持つ細胞に影響を与えるためにしようとしている場合:

あなたはsetValueのに必要な権限がありません。 (行10、ファイル "ddd")

私はそれを可能にする方法を知っていますか?私は実際に影響を受けたセルがセルA1の値をとり、A1 +1の値を増やしたいと考えています。

は、ドキュメントからあなたに

+0

「range1.setValue(2);」とは何ですか?やるべきことは? A1に1を加えて、別の場所に結果を入れようとしているのですか?A1を変更してA1を変更しようとしていますか?カスタム関数を使用して呼び出していますか?つまり、セル内で= exampleFunction()ですか?理解しないでください。 – ScampMichael

+1

私はMichaelに同意します、それは明らかではありません...私は私の答えでは、カスタム関数としてテストするときにエラーメッセージが得られるので、この関数はカスタム関数として使用されると仮定しました。 call setValue()... "また、質問には「影響を受けたセル」と表示されています。これは「関数を置いたセル」を意味すると思いますか? –

答えて

15

ありがとう:

カスタム関数は値を返しますが、彼らは、彼らがしている細胞外の値を設定することはできませんほとんどの状況では、セルA1のカスタム関数は、セルA5を変更することはできません。 。ただし、カスタム関数がdouble配列を返す場合、結果は関数を含むセルをオーバーフローさせ、カスタム関数を含むセルの右下にセルを埋め込みます。 return [[1,2]、[3,4]];を含むカスタム関数でこれをテストできます。

参照:Custom Functions in Spreadsheets

+14

さて、.setValue()メソッドの目的は何ですか?これは意味をなさない。 –

+1

カスタム関数はガスの小さなユースケースのほんの1つです –

+0

他には、スクリプト以外のGoogle Scriptの関数をどこで使用しますか? –

1

それはあなたが次のように、他の言葉で、それはGoogleスプレッドシートUI上のセルの数式によって呼び出され、カスタム関数として上記の関数を使用していることになります。

=exampleFunction() 

Custom functions in Google Sheetsには、アクセス許可が必要なGoogle Apps Scriptサービスを呼び出すために使用できない制限があります。この問題を回避するには、別の関数を呼び出すことを意味使用することです:Google Appsのスクリプトエディタから

を使用を使用してくださいdialogs and sidebars,Google Apps Script Web appsおよびGoogle Apps Script execution API

関連する問題