Vba 使用Excel中的列表重命名文件
我正在尝试使用基于excel中的列表重命名文件,以便a列具有旧文件名,B列具有新文件名。它适用于某些文件,但不重命名某些文件。 这是我使用的宏: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 = -
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文件?都在同一个目录下?是的,你是对的。我保存在与数据文件相同的文件中。