如何在谷歌应用程序脚本中按顺序执行多个功能?

时间:2015-05-09 15:49:59

标签: google-apps-script

提前感谢您在这里的时间。我是自学成才并且不熟悉编码,因此如果下面的问题是普通程序员应该已经知道的话,那就道歉了。

我在一个气体文件中创建了多个函数,这些函数在单独运行时会计算相同费用数据的各个方面。但我需要运行所有功能才能达到我的目标,遗憾的是我无法实现。请参阅下面的示例。

  1. 单独运行时的两个功能都可以正常运行。

    function totalSpend(){
    var ss = SpreadsheetApp.getActiveSheet();
    var rt = ss.getRange("K2").getValue();
    var pt = ss.getRange("K1").getValue();
    var ts =  rt + pt ;
    ss.getRange("K3").setValue(ts); }
    
    function perHead(){
    var ss = SpreadsheetApp.getActiveSheet();
    var ts = ss.getRange("K3").getValues();
    var ph = ts / 2;
    ss.getRange("K4").setValue(ph);}
    
  2. 但如果我将它们组合在一个函数下然后运行,则没有任何反应。我尝试使用调试器和执行脚本,但没有运气。以下是不起作用的例子。

    function expCalc(){
    
    function totalSpend(){
    var ss = SpreadsheetApp.getActiveSheet();
    var rt = ss.getRange("K2").getValue();
    var pt = ss.getRange("K1").getValue();
    var ts =  rt + pt ;
    ss.getRange("K3").setValue(ts); };
    
    function perHead(){
    var ss = SpreadsheetApp.getActiveSheet();
    var ts = ss.getRange("K3").getValues();
    var ph = ts / 2;
    ss.getRange("K4").setValue(ph);};
    
    }
    

1 个答案:

答案 0 :(得分:8)

function expCalc(){
  totalSpend();
  perHead();
}

function totalSpend(){
var ss = SpreadsheetApp.getActiveSheet();
var rt = ss.getRange("K2").getValue();
var pt = ss.getRange("K1").getValue();
var ts =  rt + pt ;
ss.getRange("K3").setValue(ts); }

function perHead(){
var ss = SpreadsheetApp.getActiveSheet();
var ts = ss.getRange("K3").getValues();
var ph = ts / 2;
ss.getRange("K4").setValue(ph);}

function expCalc(){

var ss = SpreadsheetApp.getActiveSheet();
var rt = ss.getRange("K2").getValue();
var pt = ss.getRange("K1").getValue();
var ts =  rt + pt ;
ss.getRange("K3").setValue(ts);

var ts = ss.getRange("K3").getValues();
var ph = ts / 2;
ss.getRange("K4").setValue(ph);
}