VBA宏。使用if语句时分配给Array并显示在消息框中

时间:2015-01-28 13:00:28

标签: excel-vba vba excel

Dim NumberOfErrors As Integer

    NumberOfErrors = 0

    If Dir(FilePath) = "" Then ' This is declared earlier and working ok

    NumberOfErrors = NumberOfErrors +1

    Dim ErrorArray() As Integer
    ReDim ErrorArray(NumberOfErrors)

    ErrorArray = Cells(cell.Row, "C").Value

    End If
Next cell

If NumberOfErrors > 0 Then

       MsgBox "Attachments Do Not Exist for The Following Users: " & ErrorArray(NumberOfErrors)

End If

所以只是试着澄清我想要做的事情。如果该文件不存在,则创建一个动态数组以显示不存在的文件的名称。将它们传递给一个数组,并在不存在的文件的消息框中显示一个列表

1 个答案:

答案 0 :(得分:0)

您的数组不是动态的,因为您总是将其调整为4,但是您应该将Dim线移出循环,然后使用:

ReDim Preserve ErrorArray(NumberOfErrors)

ErrorArray(NumberOfErrors) = Cells(cell.Row, "C").Value

或者你也可以使用Collection或Dictionary而不是数组。

要将数组与MsgBox一起使用,您需要使用Join

MsgBox Join(ErrorArray, vbLf)

例如。