我有这个代码,我可以在每个外部循环结束时显示消息。我想在假设数组或soome list结构中捕获所有这些消息,然后最后想要将这些消息显示到一个msgbox中。如果有人能帮助我,我将不胜感激。 谢谢。
For Each objNavFolder In objNavGroup.NavigationFolders
SkippedItemCounter = 0
If oItems.Count = 0 Then
MsgBox "No Appointments items in " & objNavFolder.DisplayName & "'s folder"
Else
NextRow = NextRow + 1
For Each MyItem In oItems
If MyItem = "" Then
SkippedItemCounter = SkippedItemCounter + 1
End If
'some code here
Next
Set objExpl = _colExpl.Add(objFolder, olFolderDisplayNormal)
NextRow = NextRow - 1
End If
MsgBox "No. of items= "&SkippedItemCounter&"skipped from"&objNavFolder.DisplayName&""
Next
End If
End If
End If
答案 0 :(得分:2)
而不是调用msgboxes,创建一个String并继续添加消息 - 在代码msgbox(yourString)的末尾
例如,decalare主子
之前的字符串Dim yourFinalMessage As String ' or Dim yourFinalMessage$
而不是
MsgBox "No Appointments items in " & objNavFolder.DisplayName & "'s folder"
说
yourFinalMessage = yourFinalMessage & vbCrLf & & _
"No Appointments items in " & objNavFolder.DisplayName & "'s folder"
继续这样做,直到循环结束。
在循环结束时说
msgbox YourFinalMessage
答案 1 :(得分:0)
不确定是否完全理解您的需求,但您可能会尝试将其添加到模块中:
Option Explicit
Dim globalMsg as String
globalMsg = ""
Function customMsg(msg as String)
MsgBox msg
globalMsg = globalMsg & VbCrLf & msg
End Function
只需调用customMsg("Your Message")
即可显示MsgBox,最后调用MsgBox globalMsg
将所有消息显示为单个消息(每行一个)。还有很多其他方法可以做到这一点,这取决于你。如果您需要任何进一步的帮助,请更加明确。