Vba 使用Excel中的列表重命名文件

Vba 使用Excel中的列表重命名文件,vba,excel,Vba,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 = -

我正在尝试使用基于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文件名的屏幕截图:

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

我也经历过类似的要求。我用不同的方法解决了这个问题

以下就是我所做的:

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

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

分享我在C栏写的公式:

=“任”与字符(“34”)&A2与字符(34)&“任”与字符(34)&B2与字符(34)

还添加了我的Excel屏幕截图作为参考。

CSR's At Work.jpg
Carla's意大利面徽标.tif
是无效的文件名-您不能在名称中使用反斜杠。@d讽刺的是,它最初是以该名称CSR's At Work.jpg保存的。它也不适用于excel中的其他行posted@KaranNeginhalYou是说它创建了一个名为CSR的文件夹,并在该文件夹下创建了一个Jpg文件?不,它没有。它的名称是这样的\n我在哪里保存所有文件和创建的bat文件?都在同一个目录下?是的,你是对的。我保存在与数据文件相同的文件中。