首页 > 解决方案 > 对于 excel VBA,使用“for each...next”语句。如何一次使用所有迭代的元素

问题描述

这是我正在测试的示例代码

Sub Selek()

Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)

Dim item As Variant
With fd
    If .Show = -1 Then
        For Each item In .SelectedItems
            MsgBox item
        Next item
    Else
    End If
End With
Range("K1") = item

End Sub

此脚本在不同的消息框中一一显示选定的项目,但我希望所有选定的项目都在一个 msgbox 中。

后续问题。我还需要处理为每个选定项目找到的文件路径。我意识到一旦我不在“With”部分之外,我就无法将它们分配给变量。我的解决方案是,当我仍在“With”块中时,我将项目分配给一个单元格,然后一旦我离开“With”块,然后将它分配给一个变量。有没有办法直接使用元素而不这样做?

标签: excelvbafor-loopforeach

解决方案


推荐阅读