【问题标题】:Run-time Error '438' when button from ActiveX Controls is added添加 ActiveX 控件中的按钮时出现运行时错误“438”
【发布时间】: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
  • 嗨,我摆脱了它们,它现在可以工作了。非常感谢!

标签: excel vba


【解决方案1】:

整数不需要用方括号括起来。不要使用[1],而是使用1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    相关资源
    最近更新 更多