Vba 输出阵列';s值发送到邮件';身体
我正在努力使用VBA逻辑来构建一个名称数量未定义的邮件正文。电子邮件正文中应列出“姓名”表“D”列中的姓名 这应该从“D”列的第2行开始,将名称放入一个数组中 位于邮件正文中:Vba 输出阵列';s值发送到邮件';身体,vba,excel,loops,Vba,Excel,Loops,我正在努力使用VBA逻辑来构建一个名称数量未定义的邮件正文。电子邮件正文中应列出“姓名”表“D”列中的姓名 这应该从“D”列的第2行开始,将名称放入一个数组中 位于邮件正文中: "Names : " Do While j <= i "Name " & cellValue(j) j = j + 1 Loop “名称:” 当jn认为正确时,您必须使用ReDim语句为数组变量重新分配存储空间 试试这个: Dim i As Integer Dim j As Integer
"Names : "
Do While j <= i
"Name " & cellValue(j)
j = j + 1
Loop
“名称:”
当jn认为正确时,您必须使用ReDim
语句为数组变量重新分配存储空间
试试这个:
Dim i As Integer
Dim j As Integer
Dim cellValue()
Dim x : x = 0
i = 2
j = 2
Do Until IsEmpty(Cells(i,4))
ReDim Preserve cellValue(x)
cellValue(x) = Cells(i, 4).Value
x = x + 1
i = i + 1
Loop
在您的电子邮件正文中:
For j = LBound(cellValue) To UBound(cellValue)
"Name " & cellValue(j)
Next
有关ReDim的更多信息,请查看和链接。我将为您省去搜索的麻烦
Dim i As Integer
Dim j As Integer
Dim cellValue() As String
i = 2
j = 2
Do Until IsEmpty(Cells(i,4))
ReDim Preserve cellValue(i)
cellValue(i) = Cells(i, 4).Value
i = i + 1
Loop
然后在电子邮件正文中:
sBody = "Names : "
Do While j <= i
sBody = sBody & vbNewLine & "Name " & cellValue(j)
j = j + 1
Loop
'assume you already have this, but for illustration purposes
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
With oMail
.To = 'whomever
.Body = sBody
End With
sBody=“名称:”
当你有一些问题的时候就去做。我建议搜索有关使用ReDim
构建阵列的其他问题。此外,当试图将您的姓名插入电子邮件正文时,您没有使用此字符串执行任何操作。每次这样做时,我都需要为电子邮件正文连接一个长字符串。而且,如果该字符串中没有任何返回字符,您将在同一行中获得所有名称,而不是在列表中。显示更多代码也会有所帮助…:-)
sBody = "Names : "
Do While j <= i
sBody = sBody & vbNewLine & "Name " & cellValue(j)
j = j + 1
Loop
'assume you already have this, but for illustration purposes
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
With oMail
.To = 'whomever
.Body = sBody
End With