关于commondialog多选文件的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 05:21:46
打开文件时我要求多选,代码如下,问题如下:

Dim filemanyaddress, files, strfilename, i
With CommonDialog1
.DialogTitle = "打开"
.CancelError = False
'ToDo: 设置 common dialog 控件的标志和属性
.Filter = "所有文件 (*.*)|*.*"
'.Flags = &H200 Or &H1000 Or &H80000
.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
filemanyaddress = .FileName
End With
MsgBox filemanyaddress'我选择了多个文件,这里为什么只显示出来路径,而没有文件名?
'····························
files = Split(filemanyaddress, Chr(0))'这里更不明白了,只是一个路径,为什么也能用split分割成数组?
For i = 1 To UBound(files) Step 1
print files(i)'到了这里就崩溃了,从上面看明明filesmanyaddress变量里面没有文件名,这里居然又出现了文件名?
Next i
End Sub

哪位老兄给菜鸟讲讲这是为什么,越详细越好,是在太费解了!!

那个变量里有文件名的,只不过你没看到而已,不信你把msgbox改成print试试,在窗体上会显示出来的。

filemanyaddress是对话框返回的多个文件名字符串

Split是分割字符串的,用后面的字符分割.返回一个数组

files = Split(filemanyaddress, Chr(0))
这就是用Chr(0)分割的好几个地址到files这个数组里

然后循环把files(i)打印出来,因为files里面是分割好的文件名,所以就打印出多个文件名了
一个一行

这是完整的代码吗?为什么我运行不了呢?