我正在使用name
来允许用户选择要从中导入数据的文件。但是,在用户选择文件后,它会再次打开文件对话框,要求他们选择文件。在继续之前,它会做2-3次。
我是否意外创建了一个循环?
Application.FileDialog(msoFileDialogOpen)
所以我已经尝试了你的每个解决方案,我仍然得到两个打开的文件对话框,但是我之前没有注意到的两者之间存在差异。第一个框具有相应的“选择文件”标题,但第二个框具有标题的“更新值:FilesSelected”。我还添加了之前排除的最后几行。再次感谢你的帮助。
答案 0 :(得分:2)
.Show
方法与Userform.Show
类似地显示文件对话框。因此,每次拨打.Show
时,都会显示对话框。
With Application.FileDialog(msoFileDialogOpen)
.Title = "Choose File"
.AllowMultiSelect = False
.Show
If .SelectedItems.Count = 0 Then
Exit Sub
Else
FileSelected = .SelectedItems(1)
End If
End With
答案 1 :(得分:1)
你可以缩短它:
filepath = Application.GetOpenFilename("All files (*.*),*.*")
If filepath = False Then Exit Sub
MsgBox filepath
答案 2 :(得分:0)
在您的代码中,您将两次调用Show方法。因此对话框显示两次。请尝试以下方式......
Private Sub CommandButton1_Click()
Dim strPathAndFile As String
With Application.FileDialog(msoFileDialogOpen)
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then Exit Sub
strPathAndFile = .SelectedItems(1)
End With
End Sub
希望这有帮助!