You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA宏重命名含土耳其特殊字符文件时报Run-time error 53错误

故障原因

VBA内置的Name重命名语句采用系统默认ANSI编码处理路径,仅能识别当前系统区域对应字符集内的字符,你遇到的土耳其特殊字符不属于当前ANSI编码的支持范围,单元格内存储的Unicode文件名传入Name语句时会被自动转码为乱码,因此触发文件找不到的报错。
Excel的「自文件夹导入」功能原生支持Unicode字符解析,所以导入阶段可以正常识别带特殊字符的文件名。

修复方案

将原生Name语句替换为支持Unicode的FileSystemObject组件的移动文件方法即可,无需改动原有业务逻辑,修改后完整代码如下:

Sub RenameAllFiles()
    ' 声明FileSystemObject对象,后期绑定无需额外引用库
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        If .Show = -1 Then
            selectDirectory = .SelectedItems(1)
            dDirectory = selectDirectory & Application.PathSeparator
            curRow = 2
            dFile = Cells(curRow, "G")
                                    
            Do Until dFile = ""
                 
                sFile = Cells(curRow, "A")
                sDirectory = Cells(curRow, "H")
                ' 替换原有Name语句,用FSO的MoveFile方法支持Unicode字符
                fso.MoveFile sDirectory & sFile, dDirectory & dFile
                
                curRow = curRow + 1
                
                dFile = Cells(curRow, "G")
            Loop
        End If
    End With
    ' 释放对象
    Set fso = Nothing
End Sub
注意事项

如果重命名后的新文件名也包含土耳其特殊字符,该代码同样可以正常支持,无需额外调整。

内容的提问来源于stack exchange,提问作者Jupp123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:24:07