Google电子表格脚本函数调用

时间:2012-07-19 06:06:32

标签: google-apps-script google-sheets

我在Google文档中使用了一个表单。我有一个脚本,表单为每个条目自动增加一列,另一个函数检查当前条目是否有类似的条目。代码如下。

function onFormSubmit(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var row =  SpreadsheetApp.getActiveSheet().getLastRow();
sheet.getRange(row,7).setValue('sn'+(row-1));
}

function removeDuplicates() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = new Array();
for(i in data){
var row = data[i];
var duplicate = false;
for(j in newData){
if(row[1] == newData[j][1] && row[2] == newData[j][2]){
duplicate = true;
}
}
if(!duplicate){
newData.push(row);
formSubmitReply();
}

}
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}

正如您所看到的,第1个函数用于自动增加列,第2个函数用于检查重复条目。我可以以不同的方式触发它们,但我想做的是,在第二个函数中调用第一个函数,这样当我触发提交表单的第二个函数时,它会自动运行第一个函数。我怎样才能做到这一点??

注意:像onFormSubmit()这样的简单调用无效。

1 个答案:

答案 0 :(得分:2)

将您想要从多个位置运行的代码分解出来。而不是这样做:

function eventHandler(e) {
   // code to increase column
}

function otherFunction() {
   // code to remove duplicates
   eventHandler(e);   // won't work, e is undefined!
}

你可以这样做:

function tinyHelperFunction() {
  // code to increase column
}

function eventHandler(e) {
  tinyHelperFunction();
  // other stuff, maybe
}

function otherFunction() {
  // code to remove duplicates
  tinyHelperFunction();
}