Private Sub Command1_Click()
Dim i As Integer, title As String, FileNames As String
ComDialogFax.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNLongNames
ComDialogFax.Filter = "All Excel Files (*.xls)|*.xls|All files (*.*)|*.*"
ComDialogFax.FilterIndex = 1
ComDialogFax.InitDir = "C:\"
ComDialogFax.FileName = ""
ComDialogFax.CancelError = False
ComDialogFax.ShowOpen
i = InStrRev(ComDialogFax.FileName, "\") '
title = Left(ComDialogFax.FileName, i) ' Ŀ¼
FileNames = Mid(ComDialogFax.FileName, i + 1) ' all selectes files
Do While Len(FileNames) > 0
title = GetLeftWords(FileNames, Chr(0))
MsgBox title
Loop
End Sub
Function GetLeftWords(s As String, ByVal Ch As String) As String
Dim i As Long
i = InStr(s, Ch)
If i > 0 Then
GetLeftWords = Left(s, i - 1)
s = Mid(s, i + Len(Ch))
Else
GetLeftWords = s
s = vbNullString
End If
End Function
flags:
cdlOFNExplorer &H80000
它使用类似资源管理器的打开一个文件的对话框模板。适用于 Windows 95 和 Windows NT 4.0。
cdlOFNAllowMultiselect &H200
它指定文件名列表框允许多重选择。
运行时,通过按 SHIFT 键以及使用 UP ARROW 和 DOWN ARROW 键可选择多个文件。作完此操作后,FileName 属性就返回一个包含全部所选文件名的字符串。串中各文件名用空格隔开
Private Sub Command1_Click()
Dim i As Integer, title As String, FileNames As String
With CommonDialog1
.FileName = ""
.Filter = "All Files|*.*" '过滤器指定在对话框的文件列表框中显示的文件的类型
.Flags = &H80200 '允许多重选择。'!!!!!!!!!!!
.Action = 1
' i = InStrRev(.FileName, "\") '
' title = Left(.FileName, i) ' 目录
' FileNames = Mid(.FileName, i + 1) ' all selectes files
' End With
' FileNames = Replace(FileNames, Chr(32), vbCrLf)
' MsgBox FileNames, vbYesNo, title '显示对话框
End Sub