Страницы: 1
RSS
Замена названий файлов содержащих специальные символы с помощью vba
 
Добрый вечер, прошу помочь в следующей ситуации. Из интернета скачивается большое количество картинок, многие из которых идут под названиями типа ááá, ééé, ñññ. Необходимо наладить автоматическую замену названий картинок с помощью макроса. На просторах сети нашел макрос, который меняет названия файлов, однако те файлы, в которых содержатся специальные символы он не трогает. Можно ли как-то усовершенствовать макрос, чтобы он переименовывал все файлы из списка? Прилагаю файл-пример
 
Здравствуйте, в программе Total Commander есть возможность группового переименования файлов, а с макросом не мало поиграться нужно. Total Commander проще.
 
Доброе время суток
Цитата
DANIKOLA написал:
Total Commander
Он платный. Может рекомендовать тогда бесплатный Double Commander?
 
Проблема и способы решения описаны здесь (п. 3.4).
В Вашем примере достаточно будет заменить вызовы Dir, Mkdir, Filecopy на обращение к соответствующим методам объекта FS типа Scripting.FileSystemObject.

Кстати, для замены "специальных" букв может пригодиться такая функция (для проверки занесите в ячейку A1 Ваш текст: ááá, ééé, ñññ)
Код
' Заменяет (если возможно) буквы расширенной латиницы и др. на символы, которые есть в кодовой странице по умолчанию
Function ExLatinToLatin(ByVal s As String) As String
  Dim i As Long, s1 As String, s2 As String
  For i = 1 To Len(s)
    s1 = Mid(s, i, 1)
    s2 = Chr(Asc(s1))
    If s2 <> s1 And s2 <> "?" Then
      Mid(s, i, 1) = s2
    End If
  Next i
  ExLatinToLatin = s
End Function

Sub test()
  Debug.Print ExLatinToLatin(Range("A1"))  ' выдает aaa, eee, nnn
End Sub
Изменено: sokol92 - 20.06.2020 15:13:22
Владимир
 
Цитата
ser11241 написал:
Из интернета скачивается большое количество картинок
, и к каждому названию с такими Unicode символами нужно вручную написать новое название, причём нужно как-то отследить чтоб не было дублей!
Вопрос - а зачем?
Страницы: 1
Наверх