Vba 多选择文件对话框问题

Vba 多选择文件对话框问题,vba,openfiledialog,autodesk,Vba,Openfiledialog,Autodesk,所以…我相当确定我只是错过了一些非常简单的东西,但我没有在网上看到任何东西。我有一个文件对话框,需要在其中选择多个文件。看起来很简单。我可以使用oFileDlg.MultiSelectEnabled=True来选择多个文件,但当我接受我所选的文件并将其发布到列表框时,只会显示一个文件。我相信它所做的是将文件名连接到一个长行中,但我不确定如何将它们分开。任何提示或帮助都将不胜感激 代码: 向Jaytek Development的Rodney Thomas大声喊出解决方案 ElseIf Not oF

所以…我相当确定我只是错过了一些非常简单的东西,但我没有在网上看到任何东西。我有一个文件对话框,需要在其中选择多个文件。看起来很简单。我可以使用oFileDlg.MultiSelectEnabled=True来选择多个文件,但当我接受我所选的文件并将其发布到列表框时,只会显示一个文件。我相信它所做的是将文件名连接到一个长行中,但我不确定如何将它们分开。任何提示或帮助都将不胜感激

代码:


向Jaytek Development的Rodney Thomas大声喊出解决方案

ElseIf Not oFileDlg.fileName = "" Then
    Dim fNames As Variant
    fNames = Split(oFileDlg.fileName, "|")
    Dim curName As Variant
    For Each curName In fNames
        lstSource.AddItem curName
    Next curName
End If

当使用multiselect时,您会得到一个文件名数组—您需要循环遍历该数组。这是给AutoDesk的吗如果是的话,你应该加上那个标签。我加了:谢谢!我现在正在努力。我无意中创建了一个无止境的循环:哈哈哈,这将是一个有趣的发现。我尝试了:Do-Until-oFileDlg.fileName=loop,但它是无止境的,因为它实际上不会进入下一个文件。如何让它选择下一个文件?我不熟悉AutoDesk,而且它的工作方式似乎与Office VBA完全不同,因此我无法提供太多。从谷歌上看,当你使用multiselect文件名时,它会以字符串的形式返回,其中包含与|连接的文件名,因此你可以尝试使用SplitfileName |创建一个可以循环的数组。就是这样!我不知道该怎么设置它。Jaytek开发公司的Rodney Thomas帮了我的忙。答案如下:
ElseIf Not oFileDlg.fileName = "" Then
    Dim fNames As Variant
    fNames = Split(oFileDlg.fileName, "|")
    Dim curName As Variant
    For Each curName In fNames
        lstSource.AddItem curName
    Next curName
End If