質問

私はいくつかの他のセルの値に依存してGoogleスプレッドシートのスクリプト、などのカスタム機能を持っています。これは、[OK]を、私はセルに入れて初めて実行されますが、私は他のセル内のデータを変更するとき、それは同じままです。どのように私は私が他のセルを変更すると、自動的に最初のセル更新、その値を作ることができますか?

役に立ちましたか?

解決

私は完全に私を幸せにしないの答えを見つけたが、それは私の推測で十分です。 スプレッドシートのスクリプトにonEditと呼ばれる機能を追加した場合、それはものが編集されるたびに呼び出されます。だから、これは私のために働いていたコードがあります:

(それは私が彼らが未編集のままにして有用である可能性いくつかの詳細を持っています)
function onEdit(event) {
  if (SpreadsheetApp.getActiveSheet().getName().substr(0,5) == "thing")
    SpreadsheetApp.getActiveSheet().getRange("I1").setValue(myCustomFunction());
}

これは、名前がthingで始まるシートは、セルmyCustomFunctionI1の結果を得ることになります。

他のヒント

私は同様の問題を持っています。

これは私が最善の解決策気圧それをやってますが、そのわけではない方法です。私はよりよい1を探しています。

もしシートの価格は、列Dの変化で任意の値。 任意のセルの値は、それがカスタム関数の値を更新し、全体の列に変更した場合の意味ます。

//Search Price sheet with the given name. Return price. dummy param updates google ss once the "Prices" sheet values changed.
function searchPrice(price,dummy)
{
  var SPREADSHEET_NAME = "Prices";
  var SEARCH_COL_IDX = 2;
  var RETURN_COL_IDX = 3;
  var values = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
  for (var i = 0; i < values.length; i++)
  {
    var row = values[i];
    if (row[SEARCH_COL_IDX] == price)
    {
      return row[RETURN_COL_IDX];
    }
  }
}

これは、あなたがそれを呼び出す方法です= searchPrice(B8、価格D:!D)

ちょうどあなたのカスタム関数ダミーのparamを与えます。これは、カスタム関数で何もしません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top