首页 > 解决方案 > 在 Excel 中使用列表重命名文件

问题描述

我正在尝试根据 excel 中的列表重命名文件,使得 A 列具有旧文件名,B 列具有新文件名。它适用于某些文件,但不能重命名某些文件。这是我使用的宏:

Sub RenameFiles()

Dim xDir As String

Dim xFile As String

Dim xRow As Long

With Application.FileDialog(msoFileDialogFolderPicker)

    .AllowMultiSelect = False

If .Show = -1 Then

    xDir = .SelectedItems(1)

    xFile = Dir(xDir & Application.PathSeparator & "*")

    Do Until xFile = ""

        xRow = 0
        On Error Resume Next
        xRow = Application.Match(xFile, Range("A:A"), 0)
        If xRow > 0 Then
            Name xDir & Application.PathSeparator & xFile As _
            xDir & Application.PathSeparator & Cells(xRow, "B").Value
        End If
        xFile = Dir
    Loop
End If
End With
End Sub

这是我的excel文件名的截图:

屏幕截图

谁能告诉我这里有什么问题?任何帮助,将不胜感激。提前致谢

标签: vbaexcel

解决方案


我经历过类似的要求。我用有点不同的方法解决了它。

这正是我所做的:

1)我创建的 Excel 类似于你的。2) A 列将有旧文件名 3) B 列将有新文件名 4) 我将使用 Excel 公式在 C 列中编写 DOS 命令。

完成后,我将从 C 列复制数据并从中创建一个 BATCH 文件。一旦我运行 BATCH 文件,它就会完成我的工作。此公式假定您没有任何特殊字符。

分享我在 C 列中写的公式:

="REN " & CHAR("34") & A2 & CHAR(34) & " " & CHAR(34) & B2 & "" & CHAR(34)

并添加我的 Excel 截图作为参考。 在此处输入图像描述


推荐阅读