Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA GetOpenFileName错误_Excel_Vba - Fatal编程技术网

Excel VBA GetOpenFileName错误

Excel VBA GetOpenFileName错误,excel,vba,Excel,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

我有一个宏,它使用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
子openFile()
将wb设置为工作簿,wbName设置为变量
wbName=Application.GetOpenFilename(“Excel文件,*.xl*;*.xm*”)
如果wbName为False,则
设置wb=工作簿。打开(wbName)
如果结束
wb.关闭错误
端接头
问题是宏运行后,我无法移动或重命名包含所选文件的文件夹。我可以重命名文件,但不能重命名文件夹,除非我用宏关闭工作簿。
你有什么想法吗?

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
子openFile()
将wb设置为工作簿,wbName设置为变量
wbName=Application.GetOpenFilename(“Excel文件,*.xl*;*.xm*”)
如果wbName为False,则
设置wb=工作簿。打开(wbName)
wb.关闭错误
如果结束
'更改“当前”目录
ChDrive“C”
ChDir“C:\”
端接头

如果您打开了文件夹中的文件,Excel将在文件夹上设置“锁定”。当您关闭Excel或打开其他文件夹中的文件时,它将解除锁定。(实际上,“锁定”文件夹的可能是
GetOpenFilename
,而不是
Open
。)@YowE3K我同意,但我不认为
GetOpenFilename
会锁定它,因为文档说明
显示标准的“打开”对话框,并从用户那里获取文件名,而不实际打开任何文件。
谢谢@YowE3K,但是有没有办法在不重新打开工作簿的情况下实现锁定?文档还发出警告“此方法可能会更改当前驱动器或文件夹。”@YowE3K touche!