VBA GetOpenFileName错误

时间:2017-05-12 18:32:59

标签: excel excel-vba vba

我有一个宏,它使用GetOpenFileName()从用户那里获取excel文件。

Sub openFile()

Dim wb As Workbook, wbName As Variant

wbName = Application.GetOpenFilename("Excel Files,*.xl*;*.xm*")

If wbName <> False Then
    Set wb = Workbooks.Open(wbName)
End If

wb.Close False

End Sub

问题是在宏运行后我无法移动或重命名包含所选文件的文件夹。除非我用宏关闭worbook,否则我可以重命名文件而不是文件夹。 你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

GetOpenFilename将“当前”目录更改为对话框中指定的目录。

无法更改当前Excel应用程序对象的“当前”目录的名称或删除该目录。

尝试以下修复:

Sub openFile()

    Dim wb As Workbook, wbName As Variant

    wbName = Application.GetOpenFilename("Excel Files,*.xl*;*.xm*")

    If wbName <> False Then
        Set wb = Workbooks.Open(wbName)
        wb.Close False
    End If

    'Change "current" directory
    ChDrive "C"
    ChDir "C:\"

End Sub