2017-01-16 4 views
0

以前はこのようなスプレッドシートを作成しましたが、問題はありません。それは同じコンセプトを持っていますが、エラーがあったり何もしていません。For Loop for Today's date nothing何も見つからない

Googleスプレッドシートには、名前と生年月日などの情報が記載されたシートがあります。 (日付は異なる形式の複数の列にあり、この問題を試して解決するものもあれば、ある月と別のセルから連結されたものもあります(11月、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()) 
     } 
    } 

私はこれにいくつかの方法を試してみたし、それがCONCATENATEを使用して、細胞からの生年月日を探していたので、おそらくforループの中の私は、FormatDate、とメソッドのエラーを得ていた。

また、私はしました自分のGoogleコンタクトから日付を取得することを考えましたが、連絡先グループを検索して現在の日を連絡先の誕生日とどのように一致させるかを判断できませんでした。

これは楽しみのためだけで、最終的に私はそれが私をテキスト、あるいは誕生日を持っている人にテキストを送信し、私の携帯メールに電子メールを送信する必要があります。誕生日と現在の日付を最初に一致させるだけです。助けてくれてありがとう!

+0

あなたは、実際のデータと構造で、同様の例Googleスプレッドシートを共有してもらえますか? – tiblu

+0

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

+0

私はすでにそれを共有している必要があります。私は世界で個人情報を持っていないようにいくつかの点を変更しました。お手伝いありがとうございます! – cJaredm

答えて

0

私はそれを理解することができました。 シートに、日付値またはオブジェクトとしての日付セルがありませんでした。それは私が行った連結のために文字列だった。

Googleスプレッドシートには、文字列を日付の値に変更する数式があります。それを使って、最初の問題を解決しました。

第二の問題は、私のヘッダー行が文字列だったことだったと、すぐにエラーが発生したので、私は、ヘッダー行をスキップする2ではなく1であることを、私の値を変更し、それがすべてを解決します。