我對Google Apps腳本比較陌生,並且使用的是一年前創建的非常簡單的腳本,當用戶通過Google表單提交輸入時會觸發該腳本。這個腳本一直運行得非常好,直到今年五月,我一直在試圖弄清楚當我沒有對我的代碼做任何修改時發生了什麼。我搜查了很多不同的地方,似乎無法找到問題所在。獲取有效的電子表格行
基本上,我有一個表格,用戶完成,然後提交。提交後,腳本將從最近一行中獲取輸入,並將它們存儲在變量中,然後將這些變量彙編到確認每個用戶提交的輸入的電子郵件消息確認中。
這裏是我的代碼:
function acknowledgement() {
var ActiveSheet = SpreadsheetApp.getActiveSheet();
var ActiveRow = ActiveSheet.getActiveRange().getRow();
var emailAddy = ActiveSheet.getRange("E"+ActiveRow).getValue();
var locvar = ActiveSheet.getRange("C"+ActiveRow).getValue();
var employeevar = ActiveSheet.getRange("B"+ActiveRow).getValue();
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Variables");
var contactvar = sh.getRange("A2").getValue();
var subject = sh.getRange("B2").getValue();
var contactvar2 = sh.getRange("C2").getValue();
var linebrk = "<br />";
var msg = "Dear " + employeevar + ","
+ linebrk + linebrk
+ "This confirms that you have completed your review of the latest security presentation."
+ linebrk + linebrk
+ "Your location number is " + locvar + "."
+ "Thank you very much for your participation."
+ linebrk + linebrk
+ contactvar;
var msghtml = '<p>'+msg+'</p>';
var advancedargs = {cc:contactvar2, htmlBody:msghtml};
MailApp.sendEmail(emailAddy, subject, msg, advancedargs);
};
什麼正在發生的事情是,我的代碼不再抓住當前行號(即剛通過用戶提交的活動行)。相反,它只是簡單地抓住工作表的第一行(即我的行標題,例如「員工姓名」,「電子郵件地址」等),並將這些行標題分配給變量,從而在嘗試發送電子郵件確認時產生錯誤。例如,我的變量emailAddy將包含「電子郵件地址」,導致sendEmail失敗。
任何反饋將不勝感激!
馬丁
我想你在這個確認功能上設置了一個'在表單提交'上的觸發器?第二個問題:在最後一個答案的行下方是否有任何內容? –
嗨,Serge,是的,我確實設置了「onFormSubmit」觸發器。而且,最後的答案之下沒有任何東西。已經通過Google表單添加了行,沒有問題,但是我只是沒有收到電子郵件確認信息,用戶也沒有提交他們的輸入。謝謝! – Martin