0

我在 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);
}

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

注意:简单的调用onFormSubmit()不起作用。

4

1 回答 1

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();
}
于 2012-09-12T18:48:31.360 回答