我找到了这个代码但是只找到了指定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文件。如果它可以打开任何伟大的文件。
答案 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”按钮时,只需打开文件浏览器。从那里它可以打开我需要打开/运行的任何文档/程序。