我在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()
这样的简单调用无效。
答案 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();
}