0
列Aのファイル名を検索し、ソースフォルダの列Bのようにファイルの名前を変更し、新しいフォルダにコピーするコードがあります。フォルダvba内のファイルの名前を変更
コードは以下のとおりです。
Sub Rename_Files()
Dim SourcePath, DestPath, Fname, NewFName
SourcePath = "C:\Invoices\"
DestPath = "C:\Invoices\Renamed\"
For i = 1 To 100
Fname = Range("A" & i).Value
NewFName = Range("B" & i).Value
If Not Dir(SourcePath & Fname, vbDirectory) = vbNullString Then
FileCopy SourcePath & Fname, DestPath & NewFName
Else
MsgBox (Fname & " Not Exists in Folder")
End If
Next i
End Sub
問題は、ソースディレクトリ内のファイル名が'INVOICEDUMP_OFND_4294819_ABC Corp.pdf'
と、このような数百人のように長いということです。
名前に4294819(A列から)が含まれているファイルを検索し、その名前を'INV 4294819.pdf'
(B列で説明したとおり)に置き換えます。
おかげ
あなたの助言に感謝YowE3Kしかし、これは動作していません! –
@PrateekVishwasおっと - 申し訳ありません - 間違った場所に括弧を置いてください。 'Fname = Dir(SourcePath&" * "&Range(" A "&i).Value&" * ")' – YowE3K
Wow!それは今働いている。しかし、それはループしていません。つまり、列の最初の項目の名前を変更するだけです。何が起こっているのか分かりません。私のコードではうまくループしていました。 –