旧文件名在A列,新文件名在B列,如何使用VBA将目录中的旧文件替换为新文件?
我有一个excel文件,它有两列,A列和B列 列A是已选择的路径和文件名,其中包含网络目录中每个文件名的路径:旧文件名在A列,新文件名在B列,如何使用VBA将目录中的旧文件替换为新文件?,vba,excel,Vba,Excel,我有一个excel文件,它有两列,A列和B列 列A是已选择的路径和文件名,其中包含网络目录中每个文件名的路径: \\xxx\yyyy\gggg\ooo.pdf \\xxx\yyyy\gggg\ogh.pdf \\xxx\yyyy\gggg\pjo.pdf B列有新的文件名,这些文件名应替换旧的文件名ooo.pdf、ogh.pdf、pjo.pdf: fff.pdf fgh.pdf hjk.pdf 我有一个应该用新文件名重命名旧文件名的代码,但不知怎么的,它没有有效地工作。请让我知道以下代码有什
\\xxx\yyyy\gggg\ooo.pdf
\\xxx\yyyy\gggg\ogh.pdf
\\xxx\yyyy\gggg\pjo.pdf
B列有新的文件名,这些文件名应替换旧的文件名ooo.pdf、ogh.pdf、pjo.pdf:
fff.pdf
fgh.pdf
hjk.pdf
我有一个应该用新文件名重命名旧文件名的代码,但不知怎么的,它没有有效地工作。请让我知道以下代码有什么问题:
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
请告诉我可以用目录中的新文件名替换旧文件名的VBA代码。您可以使用FileSystemObject:
Sub Iterator()
'Tools -> References -> Microsoft Scripting Runtime
Dim fso As New FileSystemObject
Dim fl As File
Dim r As Long
For r = 1 To 3
Set fl = fso.GetFile(Cells(r, "A")) 'Path is taken from column "A"
fl.Name = Cells(r, "B") 'Rename with name taken from column B
Next
End Sub
将Name命令名oldfile用作newfile@YowE3K我想,OP需要在Excel而不是OS中重命名文件:@YowE3K如果你能让我知道完整的逻辑,那对我真的很有用。谢谢。@YowE3K我知道你叫什么名字。OP是否需要在Excel或OS中重命名?不像在IT系统中那样工作效率低下。b文件名未更改c我收到一个错误。。。。。。。。。。还是别的?谢谢你的回复。如果我想重命名多个文件名,并且源目录是网络目录,那么此代码是否有效?@user9070221是。只需将loop用作set File对象并将其重命名为.FYI,代码不会显示错误,但也不会更改任何内容。@user9070221我更新了代码。代码对我有用。我在共享文件夹上测试了它。