Arrays 将所有数组元素放入Outlook邮件项中

Arrays 将所有数组元素放入Outlook邮件项中,arrays,vba,outlook,Arrays,Vba,Outlook,我有一个元素数目未知的数组 我试图找出如何将所有数组元素插入我将发送的电子邮件正文中 是否有一种方法可以引用数组的所有项(而不知道存在多少个元素) 我的代码在下面 Dim MyArray() As String Dim Msg As Object Dim item As Object Set olApp = GetObject(, "Outlook.Application") Set olNs = olApp.GetNamespace("MAPI") Set olFldr = olNs.

我有一个元素数目未知的数组

我试图找出如何将所有数组元素插入我将发送的电子邮件正文中

是否有一种方法可以引用数组的所有项(而不知道存在多少个元素)

我的代码在下面

Dim MyArray() As String
Dim Msg As Object
Dim item As Object



Set olApp = GetObject(, "Outlook.Application")

Set olNs = olApp.GetNamespace("MAPI")
Set olFldr = olNs.GetDefaultFolder(olFolderInbox)
Set olItms = olFldr.Items

olItms.Sort "Received", False 'False = Ascending = Older to newer


i = 0
For Each Msg In olItms
    If Msg.Class = olMail Then
        If InStr(1, Msg.Subject, "1401001LS") > 0 Then

        ReDim Preserve MyArray(i)

        If i = 0 Then
           MyArray(i) = "From: " & Msg.Sender & vbNewLine & "Sent: " & Msg.SentOn & vbNewLine & "To: " & Msg.To & vbNewLine & "CC: " & Msg.CC & vbNewLine & "Subject: " & Msg.Subject & vbNewLine & vbNewLine & Msg.Body
        End If


        If i > 0 Then
            MyArray(i) = "From: " & Msg.Sender & vbNewLine & "Sent: " & Msg.SentOn & vbNewLine & "To: " & Msg.To & vbNewLine & "CC: " & Msg.CC & vbNewLine & "Subject: " & Msg.Subject & vbNewLine & vbNewLine & Split(Msg.Body, "From: ")(0)
        End If

i = i + 1


        End If
    End If

Next Msg





Unload Me

Done.Show

End Sub

可以使用下面的方法循环数组中的元素

Dim sContentsOfArray as string
Dim iCnt As Integer
For iCnt = 0 To UBound(MyArray) Step 1
    'access the element at position iCnt and put it at the end of the string
    sContentsOfArray = sContentsOfArray + MyArray (iCnt)
Next iCnt

你可以使用Ubound(MyArray)找到数组的长度我知道,但我仍然无法找到一种方法将所有数组插入到一个Msgbody中。但是在这个循环中,每个元素都会覆盖下一个,不是吗?第1步是什么意思?不,它通过数组中的每个元素循环。由于数组和循环是编程的基础,显然您还没有掌握,所以您需要认真阅读一下。我并不是想刻薄,但你在为以后的一些严肃问题做准备。谢谢,伙计,我还在学习。我知道你的密码,但我不确定你是否理解我的问题!我已经有了所有元素都已设置好的MyArray。现在我需要创建一个变量,它将按顺序存储所有元素。此变量将成为电子邮件的正文。示例:MyArray(0)=一月MyArray(1)=二月MyArray(2)=三月VariableMsg=MyArray(0)&MyArray(1)&MyArray(2)问题是:每次代码运行时,数组中的元素数都不同。我理解你的问题。我想你不明白我给你的密码是什么。我更新了它以显示如何将所有元素放入字符串中。然后,你可以将该字符串指定给电子邮件的正文。谢谢,伙计。它工作得很好!还有一件事:密码会给我发一封电子邮件,里面有一些尸体。它正在工作,但当我收到电子邮件时,文本没有格式化。有没有办法保持原始格式(粗体、斜体、字体)?