上下文
我正在接收格式化为HTML的电子邮件。 电子邮件中有一张桌子。 我想解析表格,以便我可以访问表格中的各个单元格。
根据关于SO的众多问题和答案,我发现访问它的方法是做这样的事情:
objIE.document.getElementsByTagName("td")
...这将在HTML文件中创建列的数组(组)。这样就可以了。
问题:
而不是objIE.document。在众多SO示例中指向某个URL,我想在此特定情况下将其指向电子邮件。在这个特定情况下,我的电子邮件被称为" Msg"我做的是:
Dim Msg As Outlook.MailItem
在我的代码中,我做了以下事情:
Msg.Body.getElementsByTagName ("td")
但是我收到错误说#34;无效限定符"尝试运行它时该行出错。
关于如何访问表格单元格/元素的任何想法?
答案 0 :(得分:1)
这是一种应该让你非常接近的方法。您要做的是将电子邮件的HTML存储到HTML文件中,这样您就可以使用元素选择器来查找您感兴趣的内容。此代码需要对Outlook对象的引用。< / p>
这是一个简短的例子。
Option Explicit
Public Sub SOTest()
Dim outlook As outlook.Application
Dim ns As outlook.NameSpace: Set ns = GetNamespace("MAPI")
Dim folder As outlook.MAPIFolder: Set folder = ns.PickFolder
Dim item As outlook.MailItem
Dim html As Object: Set html = CreateObject("htmlfile")
Dim elements As Object
Dim element As Object
For Each item In folder.Items
If item.Class = olMail Then ' Make sure it's a Mail Item...change if not needed
html.Body.Innerhtml = item.HTMLBody ' set the body of the email equal to the html from outlook email
Set elements = html.getElementsByTagName("td")
For Each element In elements
Debug.Print element.InnerText
Next
End If
Next
End Sub