2017-11-08 9 views
0

VBA Excelを初めて使用しています。電子メール本文(Outlook)の特定の情報をExcelにコピーしようとしています。私のコードはExcelの下でVisual Basicのwinfowから実行するとうまく動作します。私はActiveXコントロールから挿入されたボタンを介してコードを昼食にしたい。私はボタンを押したときに残念なことに、それは誰もが私はそれを解決するのに役立つてもらえActiveXコントロールのボタンが追加されたときの実行時エラー '438'

実行時エラー「438」行sub1 = InStr([1], myitem.Subject, "ARM_")

を報告しますか?私は同様の問題を検索しようとしましたが、助けになるものは見つけられませんでした。ありがとうございました。以下の私のコードを見つけてください。私は不適格な書式作りには申し訳なく思っています。

Sub out() 

Dim myOlApp As Object 
Dim mynamespace As Object 
Dim myitem As Object 
Dim myfolder As Object 
Dim date1 As Date 
Dim k As Integer 
Dim i As Integer 
Dim sub1 As Variant 
Dim sub2 As Variant 
Dim sub3 As Variant 
Dim u As Integer 
Dim x As String 



k = 1 


date1 = InputBox("zadej datum - dd/mm/yyyy") 'vyskoci box pro zadani datumu 

Set myOlApp = CreateObject("Outlook.Application") 'nastavi outlook pro editaci 

Set mynamespace = myOlApp.GetNamespace("mapi") 'otevre adresar outlooku 
Set myfolder = myOlApp.ActiveExplorer.CurrentFolder 'pristup do adresare emailu (inbox) 

i = myfolder.items.Count ' pocet mailu v adresari - vsechny prichozi maily v outlooku 

For i = i - 40 To myfolder.items.Count ' tento cyklus projizdi poslednich 300 mailu ve schrance 

    Set myitem = myfolder.items(i) 'editace mailu ve schrance 
    sub1 = InStr([1], myitem.Subject, "ARM_") 'vyhleda vsechny maily(nazev), ktere zacinaji "ARM_" 
    sub2 = InStr([1], myitem.Body, "Target release to customer:") 'vyhleda text v tele emailu 
    sub3 = InStr([1], myitem.Body, "Location") 

    'MsgBox InStr([1], myitem.body, "Locations:") 
    'Cells(1, 3) = i 
    'Cells(2, 3) = myitem.Subject 
    'Cells(3, 3) = myitem.ReceivedTime 
    'Cells(4, 3) = sub2 
    'Cells(5, 3) = sub3 


    If myitem.ReceivedTime > date1 And sub1 = 1 Then ' podminky museji byt splneny - datum,text v nazvu mailu,text v mailu 

     If sub2 > 0 Then 

     k = k + 1 
     x = Mid(myitem.Body, sub2 + 27, sub3 - (sub2 + 27)) ' vyhleda ozadovany text 
     Cells(k, 1) = myitem.ReceivedTime ' cas doruceni mailu 
     Cells(k, 2) = myitem.Subject ' nazev mailu 
     'Cells(k, 3) = myitem.Body 
     Cells(k, 4) = x 
     End If 
    End If 


Next i 
    'msgtext = myitem.Body 
    'Cells(1, 1) = msgtext 
    'Cells(1, 2) = myitem.Subject 
    'Cells(1, 3) = myitem.ReceivedTime 



End Sub 
+1

あなたの整数の周りに角括弧を使用していますか? '[1]' - ちょうど '1'を使ってみてください – braX

+0

こんにちは、私はそれらを取り除きました。どうもありがとうございました! – Tom

答えて

0

整数には角かっこは必要ありません。 [1]の代わりに1

関連する問題