VBA自定义函数-打开文件对话框

Function 打开文件(Optional Title As String = "选择文件", Optional Multi As Boolean = False, _
                    Optional FileDescription As String = "所有文件", Optional FileType As String = "*.*") As Variant
    With Application.FileDialog(msoFileDialogOpen) '1
        .Title = Title
        .Filters.Clear
        .InitialFileName = "C:\"
        .Filters.Add FileDescription, FileType
        .AllowMultiSelect = Multi
        .InitialFileName = Environ("userprofile") & "\Desktop\"
        If .Show = -1 Then
            selectFileCount = .SelectedItems.Count
            ReDim FileArr(1 To selectFileCount)
            For i = 1 To selectFileCount
                FileArr(i) = .SelectedItems(i)
                .Execute '如果不想直接打开,注释掉这条
            Next i
            打开文件 = FileArr
        Else
            打开文件 = False
        End If
    End With
End Function
Sub 调用打开文件()
    FileToSelect = 打开文件(Multi:=True)
    If TypeName(FileToSelect) = "Boolean" Then MsgBox "未选中": Exit Sub
    filecount = UBound(FileToSelect)
    For i = 1 To filecount
        MsgBox FileToSelect(i)
    Next
End Sub

你可能感兴趣的:(VBA)