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)问题是:每次代码运行时,数组中的元素数都不同。我理解你的问题。我想你不明白我给你的密码是什么。我更新了它以显示如何将所有元素放入字符串中。然后,你可以将该字符串指定给电子邮件的正文。谢谢,伙计。它工作得很好!还有一件事:密码会给我发一封电子邮件,里面有一些尸体。它正在工作,但当我收到电子邮件时,文本没有格式化。有没有办法保持原始格式(粗体、斜体、字体)?