如何将FileDialog设置为不允许双击

时间:2013-10-10 12:38:27

标签: excel excel-vba userform vba

我想使用文件打开对话框来提取文件路径(或者如果更容易打开文件)

是否可以设置对话框,以便在双击文件名时不会打开文件? 我想要避免的是,如果用户双击文件名但该文件已经打开,则会显示另一个警告。

或者,或者,如果我进行设置以便在用户单击对话框的OPEN按钮或双击文件名时打开该文件的只读版本,它将起作用 - 这是一个更方便吗?在这种情况下,我是否使用对话框的Execute方法?

Private Function FindFilePath() As Boolean

Dim selectedMultiFiles As Boolean 
Dim fd As FileDialog 
Dim objfl As Variant

Set fd = Excel.Application.FileDialog(msoFileDialogOpen)

Dim myTxt As String 
With fd
    .Filters.Add "Excel Files", "*.xlsx;*.xlsm", 1
    .AllowMultiSelect = False
    .Title = "Choose the file with the target table"
    .InitialView = msoFileDialogViewDetails
    If .Show = -1 Then
        myTxt = .SelectedItems.Item(1)
        fFileName = myTxt
        FindFilePath = True
    Else
        myTxt = "Nothing was selected"
        FindFilePath = False
    End If
    On Error Resume Next End With

txBoxFilePath.Text = myTxt

End Function

1 个答案:

答案 0 :(得分:1)

我不确定这会弄乱你当前的项目多少,但你知道吗

Dim getPath As Variant
getPath = Application.GetOpenFilename
Debug.Print getPath

其中getPath将字面上存储用户选择的任何文件的路径。

除非您实际Set getPath = App..

,否则它不会自动打开文件

您可以在代码中打开文件以后,对已经打开的文件执行检查,或者像您提到的那样以只读方式打开它。