在“Application.GetOpenFilename”中单击退出或取消时出现错误消息

Posted

技术标签:

【中文标题】在“Application.GetOpenFilename”中单击退出或取消时出现错误消息【英文标题】:Error message when clicking Exit or Cancel in "Application.GetOpenFilename" 【发布时间】:2015-10-23 09:36:17 【问题描述】:

我正在将工作簿中的特定工作表导入到我正在使用的当前工作簿中。通过在再次导入之前删除当前工作表,导入可以连续正常工作。有一件小事需要解决。当我取消或退出GetOpenFilename 应用程序时,它带有:

找不到 False.xlsx (...)

所以我补充说:

filespec = Application.GetOpenFilename() 
If filespec = False Then Exit Sub

Sub import_click() 中,但我不希望它两次向我要文件。但是,如果我不包含filespec = Application.GetOpenFilename(),它就不起作用。代码如下:

Sub import_click()
    filespec = Application.GetOpenFilename()

    If filespec = False Then Exit Sub

    Call deletedatasheet
    Call import

    MsgBox "Data imported", vbInformation

End Sub

Private Sub import()

Dim wsMaster As Worksheet
Dim rd As Range

Application.ScreenUpdating = False
Application.DisplayAlerts = False

    If wsMaster Is Nothing Then
        ThisWorkbook.Sheets.Add
        Set wsMaster = ActiveSheet
        Set rd = wsMaster.Range("A1")
        wsMaster.Name = "Reviewed"
        filespec = Application.GetOpenFilename()
        Set wb = Workbooks.Open(Filename:=filespec)
        Sheets("Reviewed").Activate
        Cells.Copy rd
        wb.Close
    End If

Application.ScreenUpdating = True
Application.DisplayAlerts = True


End Sub

Sub deletedatasheet()
    Dim ws As Worksheet

    Application.DisplayAlerts = False
    For Each ws In ThisWorkbook.Sheets
        If ws.Name = "Reviewed" Then
            ws.Delete
        End If
    Next
    Application.DisplayAlerts = True
End Sub

如何成功退出或取消GetOpenFilename 应用程序并且只请求一次文件?

【问题讨论】:

【参考方案1】:

变量文件规范必须是公开的,如果你想在另一个子中使用它。 在“Sub import_click()”之前添加这一行:Public filespec As Variant 并在子导入中删除/注释行filespec = Application.GetOpenFilename()

【讨论】:

以上是关于在“Application.GetOpenFilename”中单击退出或取消时出现错误消息的主要内容,如果未能解决你的问题,请参考以下文章

秋的潇洒在啥?在啥在啥?

上传的数据在云端的怎么查看,保存在啥位置?

在 React 应用程序中在哪里转换数据 - 在 Express 中还是在前端使用 React?

存储在 plist 中的数据在模拟器中有效,但在设备中无效

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据

如何在保存在 Mongoose (ExpressJS) 之前在模型中格式化数据