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'を使ってみてください – braX
こんにちは、私はそれらを取り除きました。どうもありがとうございました! – Tom