2012-07-31 82 views
0

我有一個腳本,它在填寫電子表格表單的用戶名下的Google電子表格中創建一個新工作表。僅針對新用戶觸發

我希望在新用戶填寫與此電子表格關聯的表單時觸發此腳本。當然,新用戶意味着新的電子郵件地址被添加到電子表格中自動生成的「用戶名」列。

這是目前我的代碼:

function MakeSheet() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName("default sheet"); 
var getEmail = Browser.inputBox("user Email: "); 
var s1 = ss.getSheetByName("list of users and emails"); 
var index = s1.getRange(1,1,s1.getLastRow(),1).getValues(); 
var values = s1.getRange(1,2,s1.getLastRow(),1).getValues(); 
nextIndex: for(var i in index) { if(index[i][0] == getEmail) { var getName = values[i][0];continue nextIndex;}} 

ss.setActiveSheet(ss.getSheetByName("default sheet")); 
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet(); 
ss.setActiveSheet(ss.getSheetByName("Copy of default sheet")); 
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(getName); 
SpreadsheetApp.getActiveSheet().getRange('B3').setValue(getEmail); 
SpreadsheetApp.getActiveSheet().getRange('C3').setValue(getName); 

} 
+0

理論上,你的表單應該包含一個Submit/Post按鈕。該按鈕應該有一個服務器處理程序,該按鈕在單擊按鈕時執行。您可以從處理程序調用您的代碼。 – megabyte1024 2012-07-31 14:26:08

回答

0

的解決方案是對構成觸發提交。在觸發功能中,您可以檢查用戶是否是「新用戶」。順便說一下,我不確定您是如何獲得電子郵件地址的 - 您必須是Google Apps用戶,否則您應該明確詢問電子郵件地址。