循环结果发布Msgbox新行

时间:2017-10-18 03:50:40

标签: vba loops msgbox

我有一个循环在列中查找文本(这是有效的),我想将结果发布到MsgBox中,但是当我在循环中或循环外使用msgbox时,我将为每个找到的结果获取一个msgbox或只有一个带有一个结果的msgbox。我想要的是让它在1 msgbox中发布每个结果,并在每次结果后使用换行符。

我知道第一个代码不是寻找重复的最漂亮或最好的方法,我应该使用一个数组,但这是我让它工作的唯一方法。

第一个代码发现重复(与问题无关):

Dim lastRow As Long
Dim i As Long
Dim ws As Worksheet
Dim txt As String
Set ws = Sheets("Player List")
Dim matchFoundIndex As Long
Dim iCntr As Long

lastRow = Range("A201").End(xlUp).Row
For iCntr = 1 To lastRow
    If Cells(iCntr, 1) <> "" Then
        matchFoundIndex = WorksheetFunction.Match(Cells(iCntr, 1), Range("A1:A" & 
        lastRow), 0)
        If iCntr <> matchFoundIndex Then
            Cells(iCntr, 2) = "Duplicate"
        End If
    End If
Next

使用msgbox的循环:

For i = 2 To 201
    If ws.Range("B" & i).Value = "Duplicate" Then
        txt = "Duplicates found for" + " " + ws.Range("A" & i).Value + " " + "in" + 
            ws.Range("L" & i).Value + vbNewLine
        End If
    Next i
MsgBox txt

1 个答案:

答案 0 :(得分:2)

您需要保留txt的旧值。

txt = txt & "Duplicates found for" & " " & ws.Range("A" & i).Value & " " & "in" & ws.Range("L" & i).Value & vbNewLine