2017-06-21 12 views
0

私はこのようなウェブAPIを呼び出すカスタム関数とスプレッドシートがあります。更新カスタム関数

function myFunction(value) { 

    var value = value 
    ... 

} 

を、私はこのようにB列内の異なるセルにこの関数を呼び出す:

=myFunction(A2) 
=myFunction(A3) 
=myFunction(A4) 
... 

となり、A列の内容に関する値が変更されます。

ここでは、これらのすべての機能をトリガで更新したいと思います。トリガは1分ごと、1時間ごと、または深夜に行うことができます。以前は外部スクリプトを使用していたように、Google Apps Scriptのインターフェースに組み込みのトリガーを使用しましたが、機能しません(トリガーが「値」変数なしで関数を呼び出すためだと思います)。 別のセルの値を更新する外部トリガースクリプトを追加することを考えました( "C1"と仮定しよう)。次に、onEdit関数を使用してカスタム関数を更新します。私はonEditについて多くのことを探しましたが、私の場合はそれを動作させる方法を本当に理解できませんでした。 onEdit関数はmyFunctionを呼び出す必要がありますか?どのように?

すべてのヘルプは高く評価され、あなたはあなたのコラムでリフレッシュ式のため、この機能を使用することができますあなたの

+0

これは実際にカスタム関数では機能しません。彼らは入力が変化しないので再計算しません、そして、彼らは基本的に彼らが確定的であると仮定します。スケジュールされたトリガーが満たされている乱数を持つセルである仮引数を取るようにすると、カスタム関数が強制的に再計算されます。 –

+0

ありがとう、ありがとう。私はこのように関数を変更しました: 'function myFunction(value、now){ var value = value var now = data.getRange( 'a1')。getValue(); //カスタム関数を含むすべてのセルで "now"引数を呼びますか? ... } ' –

答えて

0

IはEXTERNで解決は、[OKセルを更新アルスクリプト、およびその細胞をいう私のcuston関数の仮引数(@RobinGertenbachにより示唆されるように) これは、外部トリガスクリプトです:

function update() { 

    var number = Math.floor(new Date().getTime()/1000); 
    ss.getSheetByName("Data").getRange("A1").setValue(number); 

} 

と私のカスタム関数は、今のようになります。 :

function myFunction(value, now) { 

    var value = value 
    var now = now 
    ... 

} 

し、それは、このように、列Bに呼び出されます。

=myFunction(A2, $A$1) 
=myFunction(A3, $A$1) 
=myFunction(A4, $A$1) 
... 

上記掲載さわやか式のための機能を備えたソリューション仕事をしていない、なぜ私は知らない。数式は更新されましたが、値は更新されませんでした。 ありがとうございました!

0

に感謝: - 現在のプロジェクトのトリガー

function updateColumnBFormulas() 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('test'); 
    var range = sheet.getRange(1, 2, sheet.getLastRow(), 1); 

    // get all formulas 
    var formulas = range.getFormulas(); 

    for (var i = 0; i < formulas.length; i++) 
    { 
    // if there's formula in a cell 
    if (formulas[i][0]) 
    { 
     // refresh it 
     sheet.getRange(i+1, 2).setFormula(formulas[i][0]); 
    } 
    } 
} 

その後はそれを毎分(編集を実行するトリガーを設定します):

enter image description here

関連する問題