vba - Microsoft Excel VBA 运行时错误 5

标签 vba excel

我对 Excel VBA 很陌生。我正在开发 Outlook 自动化以从 Outlook 电子邮件正文中获取数据,生成报告并发送给团队。我刚开始尝试一些从 Outlook 电子邮件正文中获取数据并导出到 Excel 的方法。我尝试在电子邮件正文中提取特定数据以导出到 Excel 表,似乎我一直在运行 Run Time Error 5:

vText = Trim(M.SubMatches(1))

例如。
Sub GetData()
    Dim folders As Outlook.folders
    Dim folder As Outlook.MAPIFolder
    Dim iRow As Integer
    Dim Pst_Folder_Name As String
    Dim MailboxName As String
    Dim subFolderName As String
    Dim xlSheet As Object
    Dim Reg As Object
    Dim sText As String
    Dim vText As Variant
    Dim M As Object
    Dim M1 As Object

    MailboxName = "nms@gmail.com"

    Pst_Folder_Name = "My Folders"

    subFolderName = "HTD Ticketing System"

    Set folder = Outlook.Session.folders(MailboxName).folders(Pst_Folder_Name).folders(subFolderName)
    If folder = "" Then
        MsgBox "Invalid Data in Input"
        GoTo end_lbl1:
    End If

    Sheets(1).Activate

    For iRow = 1 To folder.Items.Count
        Sheets(1).Cells(iRow, 1).Select

        sText = folder.Items.Item(iRow).Body

        Set Reg = CreateObject("VBScript.RegExp")

        With Reg
            .Pattern = "(http.)"
        End With

        If Reg.Test(sText) Then
            Set M1 = Reg.Execute(sText)
            For Each M In M1
                vText = Trim(M.SubMatches(1))
            Next
        End If

        Sheets(1).Cells(iRow, 2) = vText

        Set M = Nothing
        Set M1 = Nothing
        Set Reg = Nothing
    Next iRow

    end_lbl1:

End Sub

谢谢

尼萨

最佳答案

SubMatches 集合索引为零,因此只需更改为:

vText = Trim(M.SubMatches(0))

目前你只会得到第一场比赛,如果你想要他们所有你需要Reg.Global = True .

关于vba - Microsoft Excel VBA 运行时错误 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41014327/

相关文章:

excel - 删除包含 #N/A 的行

excel - 使用 VBA 进行颜色填充,以单元格值为条件

Excel IF 公式验证一个单元格具有数据而另一个单元格具有特定值

javascript - 将数据从大容量 csv 过滤到小 csv

regex - 从单元格中删除除数字之外的所有内容

vba - Excel VBA : how to programmatically remove the marching ants after range. 复制

excel - 周数和年份组合

Excel VBA 结合了两个工作表更改

excel - 更新每个循环变量

vba - 简单的 Word VBA 替换宏