2013-05-31 39 views
1

我正在嘗試創建一個將電子表格上傳到Google日曆併發送電子郵件給表單提交者的附加信息的Google電子表格(帶表單)。我對電子郵件部分沒有任何問題,但日曆接口給我帶來麻煩。Google電子表格/日曆界面腳本

當我嘗試運行我的腳本時,它給了我錯誤消息:「直到(字符串)。(第84行,文件」代碼「)才找到方法(類)」這一行的目的是創建一個日曆事件使用來自提交表單的數據。

這裏是行84變量的定義(在腳本中其他地方聲明):

var calId = "[email protected]"; //test calendar ID 
var cal = CalendarApp.getCalendarById(calId); //sets the active calendar to calID for adding events 
var eventTitle = row[11] //"Event Title" column 
var eventStartDate = Utilities.formatDate(new Date(row[12]), "GMT", "MM/dd/yy") //"Calendar Start Date" column 
var eventEndDate = Utilities.formatDate(new Date(row[13]), "GMT", "MM/dd/yy"); //"Calendar End Date" column 
var eventDescription = "a string for the description" 

這是行84:

cal.createAllDayEventSeries(eventTitle, eventStartDate, CalendarApp.newRecurrence().addDailyRule().until(eventEndDate),{description:eventDescription}); 

任何想法,爲什麼我收到此錯誤或者我能做些什麼來糾正它?

回答

0

您爲方法提供了錯誤的類型。

當您檢查RecurrenceRule.until()方法的文檔時,您會發現該參數應該是一個Date對象。在你的代碼中,你提供了一個String,它包含表示日期的文本。解釋器擊中.until(eventEndDate),並嘗試查找接受String參數的方法的版本,失敗並引發您看到的錯誤。

當您將值賦給eventEndDate時,您希望它成爲Date對象。這意味着你可以放棄使用.formatDate()位,這隻能製作一個看起來不錯的字符串。試試這個:

var eventStartDate = new Date(row[12]) // "Calendar Start Date" column 
var eventEndDate = new Date(row[13]) // "Calendar End Date" column 
+0

感謝Mogsdad,它做到了。我忘記了Utilities.formatDate()的輸出是一個字符串。我會確保下次再次檢查返回類型。 – Brady

相關問題