根据条件重命名文件

时间:2014-12-08 16:58:34

标签: excel rename file-rename batch-rename

我有一个简单的查询。我需要根据以下列表重命名我的文件。

Column A    Column B
00145         AB12
00206         AZ15
00705         AK09
so on ...........

目前我的文件按照A列命名,我需要将它们批量重命名为B列中的名称。有超过一千条记录。

这意味着文件" 00145"将被重命名为" AB12"," 00206"到" AZ15"等等。

我已经考虑过在excel中对它们进行排序,然后在filerenamer软件中使用重命名列表,但是挑战在于文件夹中的文件可能不一定按顺序排列,即文件号。 " 00705"可能会丢失,因此通过使用重命名列表,所有后续文件名都将被关闭。

我需要的是识别列表和文件夹中可用的文件,然后将它们与相应的名称相匹配,并相应地重命名文件。

任何帮助都将受到高度赞赏。

谢谢。

1 个答案:

答案 0 :(得分:1)

刚刚测试

Sub rename_batch()

filePath = "C:\tmp\"
counter = 0

For Each c In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))

  If Dir(filePath & c.Value) <> "" Then
    Name filePath & c.Value As filePath & c.Offset(counter, 1).Value
    c.Offset(0, 2).Value = c.Value & " > " & c.Offset(counter, 1).Value
  Else
    counter = counter - 1
  End If

Next

End Sub

这将列在&#34; A&#34;列中的列表中。从&#34; A2&#34;开始之后,它检查文件,如果文件存在,它将重命名为列中的任何内容&#34; B&#34;,如果文件丢失,它会跳过该行,但计数器会下降,这是从哪里读取的偏移量列&#34; B&#34;,因此它将重命名为#34; B&#34;列中较早的文件。我还包括一条线,因此它填充了列&#34; C&#34;用哪个文件重命名为什么。 附:请记住,我没有包括任何检查,以查看目标文件是否存在。如果您也需要,请告诉我