【发布时间】:2017-11-08 13:33:58
【问题描述】:
我是 VBA Excel 的新手。我正在尝试将某些信息从电子邮件正文 (Outlook) 复制到 Excel。当我在 Excel 下从 Visual Basic winfow 运行它时,我的代码运行良好。我想通过从 ActiveX 控件插入的按钮来午餐代码。不幸的是,当我按下按钮时,它会报告
运行时错误“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 -
嗨,我摆脱了它们,它现在可以工作了。非常感谢!