10

スプレッドシート=SIN(45)+123では、セルに入力でき、評価されます。

次のように機能する「eval」関数のようなカスタム関数内でスプレッドシート関数を評価するにはどうすればよいですか。

function myFunc() {
  return Sheet.eval("=SIN(45)+123")
}

出来ますか ?

特に関数については気にしないことに注意してください。SIN私が望むのは、スプレッドシート関数の完全な武器庫にアクセスすることです ( PMTQUERYNPERなど)。

4

6 に答える 6

6

Apps-Script からのスプレッドシート関数

不可能 - これは何度も尋ねられています。google-apps-script の問題リストをチェックして、何か変更があったかどうかを確認することをお勧めします。しかし、最後に確認したところ、それを行う方法はなく、追加する予定もありません。 https://code.google.com/p/google-apps-script-issues/issues/list

Ethercalc - Java スクリプト スプレッドシートの数式

必要に応じて、"ethercalc" からコードをいつでもコピーできます。これには、スプレッドシートの数式の Java スクリプト バージョンがあるためです。 https://github.com/audreyt/ethercalc

于 2014-11-10T22:37:55.620 に答える
3

私はこれを機能させました。設定値を使用するとうまくいきます。したがって、次のようなものです。

function MyFun1(){
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').setValue(Myfun2())
}

function MyFun2(){
   return "=SIN(45)+123"
}

お役に立てれば!

于 2015-10-22T14:54:29.680 に答える
0

高度な機能で可能かどうかはわかりません。ただし、(合計、減算など)のような一般的でわかりやすい関数では可能です。

以下は、スクリプト自体で計算が行われた後に値を設定するために使用したコードです。

function MyFun1() {
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('A1').setValue(MyFun2());
}

function MyFun2() {
var one = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Dashboard");
var two = one.getRange('A2').getValue();
var three = one.getRange('A3').getValue(); return two*three;
}

Myfun1() にトリガー「onEdit」を追加して、戻り値を自動的に更新することを忘れないでください。

于 2017-01-06T16:35:19.200 に答える