从邮件正文-VBA中选择模式
我收到多封邮件,我必须进行模式搜索,并将结果发送到一个数组中。在ExcelVBA中有没有简单的方法 我的邮件内容如下所示: 选择: 你的选择 描述:我的描述 项目: 项目1.12345.XYZ 项目5.56789.KHI 项目54567.YHT 这是一封示例邮件 ............................ 我需要grep以ITEM开头的所有行。我可以这样做:从邮件正文-VBA中选择模式,vba,email,excel,outlook,Vba,Email,Excel,Outlook,我收到多封邮件,我必须进行模式搜索,并将结果发送到一个数组中。在ExcelVBA中有没有简单的方法 我的邮件内容如下所示: 选择: 你的选择 描述:我的描述 项目: 项目1.12345.XYZ 项目5.56789.KHI 项目54567.YHT 这是一封示例邮件 ............................ 我需要grep以ITEM开头的所有行。我可以这样做: aryLines = Split(MyMail.Body, vbCrLf) 环通过芳基线 找到匹配的 我正在寻找一个简单的
aryLines = Split(MyMail.Body, vbCrLf)
环通过芳基线
找到匹配的
我正在寻找一个简单的解决方案,因为匹配线的数量不同,有时可能超过1000条,有时不到10条。我想将这些值填充到xls工作表中 虽然我可能错了,但我认为像你这样将尸体分割成阵列是最快的方法。然后我在数组中循环,并结合
INSTR()
或LEFT()
获取相关行。在你的情况下,我希望你LEFT()
。事实上,我一直在用它
比如说
aryLines = Split(MyMail.Body, vbCrLf)
For i = LBound(aryLines) To UBound(aryLines)
If InStr(1, aryLines(i), "ITEM", vbTextCompare) Then
End If
Next i
另一个选项是在将数据拆分为数组后立即将其导出到Excel中,然后使用.AutoFilter
aryLines = Split(aaa, vbCrLf)
oXLWorksheet.Range("A1").Resize(UBound(aryLines), 1).Value = _
oXLAP.WorksheetFunction.Transpose(aryLines)
导出数据后,您可以使用自动筛选
删除不需要的行。可以看到一个例子。此示例复制过滤后的范围,但您可以对其进行编辑以删除该范围
Autofilter
的标准将是Criteria1:=“ITEM*”
。这意味着不以项开始的筛选单元格