2017-01-16 40 views
0

我已經制作了一個這樣的電子表格,沒有問題。它有相同的概念,但有錯誤或什麼都不做。For Loop今天的日期沒有任何問題

在Google表格中,我有一張名單和生日表以及其他信息。 (日期有多種不同格式的列,只是試圖解決這個問題,有些是從一個月份和另一個日期的單元格連接起來的(11個月,13個日期產生「11/13」),或者只是輸入用手11/13,甚至與今年的日期「2017年11月13日」)。

我已經簡化我的代碼給你看,這不會產生任何結果,並沒有錯誤。

function birthdays() { 

    //Sheets Var List 
    var ss = SpreadsheetApp.getActive(); 
    var births = ss.getSheetByName('Birthdays'); 
    var lastRow = births.getLastRow(); 

    var dateToday = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy"); 

//Column 10 has the dates manually entered in format MM/dd/yyyy. 
//I have added today's date in the list to ensure it has something to find to trigger the message. 
//Column 8 has the message I want to show on the date with the same row. 
     for (var i = 1; i < lastRow; ++i) { 
      if (dateToday == (births.getRange(i, 10).getValue())) 
      Browser.msgBox(births.getRange(i, 8).getValue()) 
     } 
    } 

我已經嘗試了這幾種方法,並在for循環中使用我的formatDate獲取了方法錯誤,可能是因爲那是在使用連接查找來自單元格的出生日期。

我也考慮從我的Google通訊錄中獲取日期,但我無法弄清楚如何通過我的聯繫人組進行搜索,並將當天的日期與聯繫人的生日進行匹配。

這只是爲了好玩,最終我會通過電子郵件發送給我的手機郵件,甚至發送文本給有生日的人。只需要讓它匹配生日到當前的日期。謝謝您的幫助!

+0

您是否可以與實際的數據和結構共享Google Sheet的示例? – tiblu

+0

https://docs.google.com/spreadsheets/d/150zH5JViwH2bR9yhLEhIV6Phf8uwMP-EhnmVroGwako/edit?usp=sharing – cJaredm

+0

我應該已經分享過。我改變了一些東西,只是沒有在世界上的個人信息。感謝您的幫助! – cJaredm

回答

0

我能弄明白。 工作表沒有日期單元格作爲日期值或對象。這是一個字符串,因爲我做了連接。

Google表格具有將字符串更改爲日期值的公式。使用它,它解決了第一個問題。

第二個問題是我的標題行是一個字符串,並且會立即產生一個錯誤,所以我將i的值更改爲2而不是1來跳過標題行並解決了所有問題。