VBA使用MsgBox打印.SelectedItem

时间:2015-06-19 13:25:53

标签: vba excel-vba excel-2010 excel

我正在尝试使用简单的MsgBox打印所选文件名以进行调试。 msoFileDialogOpen允许用户选择文件。我正在尝试打印所选文件的文件名。

'   Start File Explorer to select file containing data
Dim lngCount As Long
' Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = True
    .Show

'   Display paths of each file selected
    For lngCount = 1 To .SelectedItems.Count
        MsgBox .SelectedItems
    Next lngCount
End With

当我运行此操作时,我收到错误消息"运行时错误' 450':错误的参数数量或无效的属性分配"。

3 个答案:

答案 0 :(得分:4)

您的消息框似乎正在尝试显示整个集合(.SelectedItems),而不是一次显示一个(.SelectedItems(lngCount))。你把这个放了吗?

For lngCount = 1 To .SelectedItems.Count
    MsgBox .SelectedItems(lngCount)
Next lngCount

或者更简单,这也可能有效:

For Each filename In .SelectedItems
    MsgBox filename
Next

答案 1 :(得分:1)

.SelectedItems无法直接显示(因为它无法强制转换为文本字符串),因此MsgBox .SelectedItems无效。

要显示特定的所选项目,请使用MsgBox .SelectedItems(lngCount)

答案 2 :(得分:1)

您试图显示Collection(selecteditem S ),而MsgBox只接受String

只需切换到以下行:

MsgBox .SelectedItems(lngCount)