2011-11-02 27 views
0

我正在使用VBA創建一個FileOpenDialog對象,以便用戶可以選擇一個目錄。這裏是我的測試代碼:FileOpenDialog需要2個「確定」點擊才能返回值?

Function GetFolder(InitDir As String) As String 
Dim fldr As FileDialog 
Dim sItem As String 
sItem = InitDir 
Set fldr = Application.FileDialog(msoFileDialogFolderPicker) 
With fldr 
.Title = "Please select a folder, then press OK to continue" 
.AllowMultiSelect = False 
If Right(sItem, 1) <> "\" Then 
sItem = sItem & "\" 
End If 
.InitialFileName = sItem 
If .Show = 0 Then 
    GetFolder = "" 
    Exit Function 
End If 
If .Show <> -1 Then 
sItem = InitDir 
Else 
sItem = .SelectedItems(1) 
End If 
End With 
GetFolder = sItem 
Set fldr = Nothing 
End Function 

sub test() 

dim selectedDir as variant 

selectedDir=getFolder("c:") 
msgbox selectedDir 

end sub 

但通過此函數創建的對話框要求用戶單擊確定兩次選擇,他們已經點擊任何文件夾。有什麼辦法可以讓它只需點擊OK一次?

+0

它不需要我點擊確定兩次。你在哪個應用程序中託管? – Neil

回答

4

您撥打.Show()兩次。所以對話顯示兩次。每次只需點擊確定一次。

只需撥打.Show一次,並將返回的值保存到變量中以便稍後測試。

+0

解決了!謝謝。 – sigil

相關問題