我正在使用 Application.FileDialog(msoFileDialogOpen)
允许用户选择要从中导入数据的文件。但是,在用户选择一个文件后,它会再次弹出打开文件对话框,要求他们选择一个文件。在继续之前,它将执行 2-3 次。
我是否不小心创建了一个循环?
Private Sub CommandButton1_Click()
Set myFile = Application.FileDialog(msoFileDialogOpen)
With myFile
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
Exit Sub
ElseIf .Show <> 0 Then
FileSelected = .SelectedItems(1)
End If
End With
'data location & range to copy
mydata = "='[FileSelected]'!$C$10:$C$21" '<< change as required
'link to worksheet
With ThisWorkbook.Worksheets(1).Range("C10:C21") '<< change as required
.Formula = mydata
'convert formula to text
.Value = .Value
End With
End Sub
所以我已经尝试了你的每一个解决方案,我仍然得到两个打开的文件对话框,但是两者之间存在我以前没有注意到的差异。第一个框有适当的“选择文件”标题,但是第二个框有“更新值:FilesSelected”作为标题。我还添加了我之前排除的最后几行。再次感谢你的帮助。
最佳答案
.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
关于Excel文件对话框多次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46078472/