2016-07-26 15 views
0

ここにもう1つの質問があり、そこにアドバイスを実装しましたが、まだ何かを返すことができません。非常に単純です。毎日06:01に私のメインの受信トレイにメールが届きます。これは、このスクリプトの最後にoOltargetEmailを設定する必要があります。 .Restrict()の文字列はドキュメントに基づいて正しく書式設定されていますが、oOlItmは決して値をとらないと思います。VBA Outlook Restrictは「何も返さない」

 Const olFolderInbox As Integer = 6 
     Const AttachmentPath As String = "C:\Users\TRBYE\Desktop\cheeseReport.csv" 

     Private Sub CommandButton1_Click() 

     Dim oOlAp As Object, oOlns As Object, oOlInb As Object, oOlItm As Object, oOltargetEmail As Object, oOlAtch As Object 
     Dim beginningDate As String, endingDate As String, todaysDateTime As String, todaysDate As String, receivedTime As String, date1 As String 
     Dim x As Integer 

     Set oOlAp = GetObject(, "Outlook.application") 
     Set oOlns = oOlAp.GetNamespace("MAPI") 
     Set oOlInb = oOlns.GetDefaultFolder(olFolderInbox) 

     receivedTime = " 06:01 AM" 
     todaysDateTime = Format(Now(), "ddddd hh:mm AMPM") 
     x = Len(todaysDateTime) 
     todaysDate = Left(todaysDateTime, (Len(todaysDateTime) - 9)) 

     'set start and end time based on strings from above' 
     beginningDate = todaysDate & receivedTime 

     'determine corrrect email' 
     For Each oOlItm In oOlInb.Items.Restrict("[ReceivedTime] = '" & Format(beginningDate, "ddddd h:nn AMPM") & "'") 
      Set oOltargetEmail = oOlItm 
     Next 

     'download attachment to desktop' 
     For Each oOlAtch In oOltargetEmail.Attachments 
      oOlAtch.SaveAsFile AttachmentPath 
     Next 

     'open attachment' 
     Workbooks.Open (AttachmentPath) 
     End Sub 

答えて

0

日付/時刻プロパティを扱うときには絶対に「=」を使用しないでください。丸め誤差のため正確な一致はありません。

0

あなたのアドバイスの両方がこれを理解するのに役立ちました。将来的に誰かがこれに遭遇し、それを理解することができない場合に備えて、ちょうど仕事が終わるところです。主な問題は、[ReceivedTime]が@Dmitry Streblechenkoのような "="演算子のために値をとったことはないということでした。助けてくれてありがとう!

      'determine corrrect email' 
          For Each oOlItm In oOlInb.Items.Restrict("[ReceivedTime] > '" & Format(beginningDate, "ddddd h:nn AMPM") & "' And [ReceivedTime] < '" & Format(endingDate, "ddddd h:nn AMPM") & "'") 
           Set oOltargetEmail = oOlItm 

            'download attachment to desktop' 
            For Each oOlAtch In oOltargetEmail.Attachments 
             oOlAtch.SaveAsFile AttachmentPath 
            Next 

            'open attachment' 
            Workbooks.Open(AttachmentPath) 
          Next 
関連する問題