Переименовывать файлы на основе условия if

У меня есть то, что может быть простым запросом. Мне нужно переименовать мои файлы на основе приведенного ниже списка.

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

В настоящее время мои файлы названы в соответствии с столбцом A, и мне нужно пакетно переименовать их в имена из столбца B. Существует более тысячи записей.

Это означает, что файл «00145» будет переименован в «AB12», «00206» в «AZ15» и так далее.

Я думал о сортировке их в Excel, а затем использовать список переименований в программном обеспечении для переименования файлов, однако проблема заключается в том, что файлы в папке могут быть не обязательно в порядке, т.е. «00705» может отсутствовать, поэтому при использовании списка переименования все последующие имена файлов будут отключены на единицу.

Мне нужно что-то, чтобы определить файлы, доступные в списке и в папке, а затем сопоставить их с соответствующим именем и соответствующим образом переименовать файлы.

Любая помощь будет высоко оценена.

Спасибо.


person CaptainABC    schedule 08.12.2014    source источник


Ответы (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

это будет идти вниз по списку в столбце «A», начиная с «A2» и далее, он проверяет наличие файла, если файл существует, он переименовывается в то, что находится в столбце «B», если файл отсутствует, он пропускает строку, но счетчик идет вниз, что является смещением для чтения из столбца «B», поэтому он будет переименовывать в файл ранее в столбце «B». Я также включил строку, чтобы она заполнила столбец «C», каким файлом он был переименован. P.S. имейте в виду, что я не включил никаких проверок, чтобы увидеть, существует ли файл назначения. Дайте мне знать, если вам это тоже понадобится

person Raugmor    schedule 08.12.2014