gpt4 book ai didi

vba - 如何使用 vba 读取粘贴在 Outlook 邮件正文中的表格?

转载 作者:行者123 更新时间:2023-12-05 00:02:25 26 4
gpt4 key购买 nike

我需要使用 vba 读取图片中的数据表。我用过 Msg.Body 阅读正文,但实际上我需要找到第一行作为标题,其余作为数据字段并相应地更新 DBMS 表。那么是否可以像在 excel 中那样读取该表?
Outlook

最佳答案

此示例程序应该会有所帮助。我在 Excel 中重新创建了您的表格,将其粘贴到 Outlook 电子邮件中并发送给我自己。然后我使用这个程序来读取“单元格”值。

Sub GetLines()

Dim msg As Outlook.mailItem
Dim rows As Variant
Dim numberofColumns As Long
Dim numberofRows As Long
Dim headerValues As Variant
Dim headerRow() As String
Dim data() As String
Dim i As Long, j As Long

' get currently selected email
Set msg = ActiveExplorer.Selection.item(1)

' tokenize each line of the email
rows = Split(msg.Body, vbCrLf)

' calculate array size
numberofColumns = Len(rows(0)) - Len(Replace(rows(0), Chr(9), ""))
numberofRows = UBound(rows) + 1

' put header row into array
ReDim headerRow(1 To numberofColumns)
headerValues = Split(rows(0), Chr(9))

For i = 1 To numberofColumns
headerRow(i) = Trim$(headerValues(i - 1))
Next i

' calculate data array size
numberofRows = numberofRows - 1

' put data into array
ReDim data(1 To numberofRows, 1 To numberofColumns)

For i = 1 To numberofRows
For j = 1 To numberofColumns
data(i, j) = Trim$(Split(rows(i), Chr(9))(j - 1))
Next j
Next i

End Sub

首先,我们将电子邮件的每一行标记为一个数组。我们计算数组大小,然后创建一个数组来保存表格的第一行(“标题”)。

然后我们从行数中减去一,因为我们将跳过标题行。然后我们遍历每一行,拆分它并遍历它的值,在我们进行时将它们分配给我们的 2D 数组。

最后,可以迭代变量“headerRow”以检索要用于 DBMS 的字段值。变量“data”仅包含与每个字段对应的值。因此 headerRow(1) 和 data(n,1) 应该对应于表第一列中的值。

关于vba - 如何使用 vba 读取粘贴在 Outlook 邮件正文中的表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8061350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com