我正在尝试使用简单的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':错误的参数数量或无效的属性分配"。
答案 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)