Excel文件对话框多次出现

标签 excel vba

我正在使用 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/

相关文章:

sql-server - 微软访问: connecting to SQL Server via Active Directory username and password Trusted_Connection=no

vba - 自动筛选在筛选 View 中看不到数值数据(多个值)

excel - 有没有办法在打开具有相似文件名的 Excel 文件时自动运行宏?

vba - 如何让用户从对话框中输入范围

php - HTML 表格到 XLS(用于公式的单元格)

excel - 根据下拉选择显示/隐藏行

c# - 打开 Excel 错误 : System. Runtime.InteropServices.COMException (0x80080005):正在检索具有 CLSID 的组件的 COM 类工厂

excel - 将点击事件添加到命令按钮

VBA 将 OLAP 多维数据集中的枢轴过滤器更改为范围

excel - 为以编程方式添加的按钮设置加速器