使用Excel VBA重命名文件夹PDF文件的报错问题求助
Excel VBA重命名PDF文件的问题与解决过程
我尝试用Excel VBA读取表格C列的新文件名,重命名指定文件夹中的PDF文件,测试单文件时遇到了以下问题及解决过程:
初始测试代码及报错
最初的测试代码如下:
' 获取桌面路径 desktop_path = CreateObject("WScript.Shell").specialFolders("Desktop") ' 打开表格文件 Workbooks.Open (desktop_path & ("\fatture booking.xls")) ' 获取C列最后一行 lastrow = Cells(Rows.Count, "c").End(xlUp).Row ' 获取目标文件夹下的PDF文件名 nome_vecchio = Dir(desktop_path & "\fatture booking\*.pdf") ' 读取C2单元格的新文件名 nome_nuovo = Cells(2, "c") ' 执行重命名 Name nome_vecchio As nome_nuovo
运行时出现Runtime Error 53(找不到文件),尽管报错弹窗显示的文件名是正确的。
修改路径后的问题
给文件名补充路径后修改代码:
' 获取桌面路径 desktop_path = CreateObject("WScript.Shell").specialFolders("Desktop") ' 定义目标文件夹路径 indirizzo_cartella = desktop_path & "\fatture booking\" ' 打开表格文件 Workbooks.Open (desktop_path & ("\fatture booking.xls")) ' 获取C列最后一行 lastrow = Cells(Rows.Count, "c").End(xlUp).Row ' 拼接带路径的原文件名 nome_vecchio = indirizzo_cartella & Dir(desktop_path & "\fatture booking\*.pdf") ' 读取C2单元格的新文件名 nome_nuovo = Cells(2, "c") MsgBox nome_nuovo ' 执行重命名 Name nome_vecchio As nome_nuovo
此时提示「文件已存在」,但实际文件名并未更改。
最终解决代码
将重命名语句修改为以下形式后,问题顺利解决:
Name indirizzo_cartella & nome_vecchio As indirizzo_cartella & nome_nuovo
内容的提问来源于stack exchange,提问作者Andrea Lombardi
相关产品推荐
相关产品推荐

