在Excel中使用列表重命名文件

时间:2018-06-15 18:32:35

标签: excel vba excel-vba

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

SCREENSHOTOFEXCEL

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

1 个答案:

答案 0 :(得分:1)

我遇到了类似的要求。我用不同的方法解决了它。

这正是我所做的:

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屏幕截图作为参考。 enter image description here