不知道如何编程一个按钮来打开文件资源管理器,可以打开任何文件

时间:2018-03-02 20:34:54

标签: excel excel-vba vba

我找到了这个代码但是只找到了指定excel文件的代码,而不是允许我打开任何文档的代码。基本上我在工作表上有一个按钮,需要在单击时打开文件资源管理器。单击后,需要将用户定向到包含各种类型文档的特定文件路径。然后,用户应该能够打开任何文档。 有人有解决方案吗?

提前致谢!

这是我迄今为止所发现的东西......

Private Sub Showfileexplorer_Click
Dim strFileToOpen As String
strFileToOpen = Application.GetOpenFilename _
(Title:="Please choose a file to open", _
FileFilter:="Excel Files *.xlsx* (*.xlsx*),")
If strFileToOpen = False Then
MsgBox "No file selected.", vbExclamation, "Sorry!"
Exit Sub
Else
Workbooks.Open Filename:=strFileToOpen
End If
End Sub

此代码适用于选择文档。我已经尝试选择我想要的文档(特别是上面列出的excel.xlsx文件)打开然后单击打开它会抛出一个错误。问题是我不想只是excel文件。如果它可以打开任何伟大的文件。

2 个答案:

答案 0 :(得分:0)

您可能想要使用FileDialog对象

Sub SelectFiles()
Dim FSelect As FileDialog, sFile as Variant

    Set FSelect = Application.FileDialog(msoFileDialogOpen)

    FSelect.Show

    For Each sFile In FSelect.SelectedItems
        Debug.Print sFile
        '
        ' do stuff with file, full path in sFile
        '
    Next sFile

End Sub

您还可以设置过滤器路径,让用户只打开一种或多种类型的文件,让他们选择单个或多个文件,或只选择文件夹......总而言之,这是一个值得探索的多功能野兽。

答案 1 :(得分:0)

其他人能够在另一个论坛上回答我的问题。感谢来自Ozgrid的Trebor76用户友好解决方案。这是给我的解决方案。这非常即插即用。

Option Explicit
Sub Acessdocumentexplorer_Click()

    'The following has been adapted from here:
    'https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-
filedialog-property-excel

    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(lngCount)
            CreateObject("Shell.Application").ShellExecute 
.SelectedItems(lngCount)
        Next lngCount
    End With

End Sub

就像我需要所有这些代码一样,当我点击我工作表上的“Access Document Explorer”按钮时,只需打开文件浏览器。从那里它可以打开我需要打开/运行的任何文档/程序。

Ozgrid forum Link