如何从列中复制文件名并在目标中搜索它并将其保存到具有不同名称的新位置?

时间:2016-07-22 04:11:04

标签: excel vba excel-vba

我正在寻找帮助我使用VBA代码的人,该代码可以帮助我使用excel中的列中的文件名在目标中找到文件,并复制该文件并将其保存在另一个目标中并使用文件名重命名来自另一栏。

因此,例如我在表单1中有一个列A,名称为1.jpg2.jpg,...我必须从目的地的一组文件中搜索此文件名,比如说C:/Users/Images/并将其复制到其他位置C:/Users/New_location/,然后根据同一工作表1中的B列重命名,例如1_new.jpg2_new.jpg

我创建了一个代码,用于将文件复制到目标但我无法创建一个代码来重命名。

但是,我可以使用VBA代码手动重命名它。但我想自动化它。

请在下面找到手册代码: -

Sub test()
  Dim R As Range
  Dim SourcePath As String, DestPath As String, FName As String, NewFName As String
  Dim Cell As Range
  Dim Rng As Range
  Dim i As Integer


  'Setup source and dest path (Note: must have a trailing backslash!)
  SourcePath = "E:\Praveen\Images_Final\"
  DestPath = "E:\Praveen\Copy_Test\"
  'Visit each used cell in column A



    FName = Range("M2").Value
    NewFName = Range("N2").Value

  FileCopy SourcePath & FName, DestPath & NewFName
    FName = Range("M3").Value
    NewFName = Range("N3").Value
  FileCopy SourcePath & FName, DestPath & NewFName

End Sub

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码。它会起作用

注意:如果源文件夹中不存在该文件,则会抛出弹出消息。

Sub test()
    Dim SourcePath, DestPath, Fname, NewFName
    SourcePath = "E:\Praveen\Images_Final\"
    DestPath = "E:\Praveen\Copy_Test\"
    For i = 2 To 3
        Fname = Range("M" & i).Value
        NewFName = Range("N" & 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