Страницы: 1
RSS
Переименование файлов по списку Excel
 
Всем здравствуйте!
Была такая тема:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=9160

Но вот пост Hugo №24 мне не понятен где это меняется в файлах прикрепленных ТеперьНеАноним в посте №23. Мне нужно jpg переименовать.
Покажите где что нужно поменять.
Изменено: ankon85 - 24.04.2013 16:57:07
 
Ну насколько я помню - это был намёк на то, что шапку не нужно включать в список файлов :)
"Мне нужно jpg переименовать" - это теперь мне непонятно.
 
Цитата
"Мне нужно jpg переименовать" - это теперь мне непонятно.
Я изменил txt на jpg всего лишь)

Цитата
Ну насколько я помню - это был намёк на то, что шапку не нужно включать в список файлов  :)
А что конкретно нужно убрать, чтобы макрос заработал?
 
В той теме нужно было 1 заменить на 2.
Т.е. цикл перебора строк начинать со второй строки.
У Вас аналогично - или убрать шапку (если она есть), или подправить цикл.
 
Hugo, я не силен в макросах. Вроде что-то я поправил. Скажи точнее где нужно изменить.
 
ankon85, и долго Вы будете вместо кода показывать картинки? И к незнакомым людям следует обращаться на ВЫ.
 
Ну откуда мне знать? Мне отсюда не видно :)
Код написан правильно. Где какие файлы, что там на листе - Вам виднее.
 
Цитата
Юрий М пишет: И к незнакомым людям следует обращаться на ВЫ.
Hugo мне по-дружески отвечает, я и к нему по-простому обращаюсь)
А код видимо этот:
Код
Option Explicit
Sub ПереименоватьГруппуФайлов()
Dim OldName As String, NewName As String, sPath As String
Dim i As Long, lLastRow As Long
   sPath = "C:\1\"
   lLastRow = Cells(Rows.Count, 2).End(xlUp).Row

   For i = 1 To lLastRow
      OldName = sPath & Cells(i, 1) & ".jpg" 'старое имя в ячейке
      NewName = sPath & Cells(i, 2) & ".jpg" 'новое имя
      Name OldName As NewName
   Next i
End Sub

Private Sub CommandButton1_Click()
Dim OldName As String, NewName As String, sPath As String
Dim i As Long, lLastRow As Long
   sPath = "C:\1\"
   lLastRow = Cells(Rows.Count, 2).End(xlUp).Row

   For i = 1 To lLastRow
      OldName = sPath & Cells(i, 1) & ".jpg" 'старое имя в ячейке
      NewName = sPath & Cells(i, 2) & ".jpg" 'новое имя
      Name OldName As NewName
   Next i
End Sub
Изменено: ankon85 - 04.04.2014 14:11:55
 
Цитата
Hugo пишет: Ну откуда мне знать? Мне отсюда не видно  :)
Так сможете дать ответ?)
 
Ну код ладно, и так видно что ошибок нет.
Файлы где, какие, в каком каталоге? Что на листе? В каком листе данные? В каком листе код? Видно что код в листе с кодовым именем Лист2, но этого мало. Да мало ли что Вы там натворили...
 
Цитата
ankon85: ...А код видимо этот...
Два идентичных макроса... В одном из них можно вызвать другой:
Код
Private Sub CommandButton1_Click()
   Call ПереименоватьГруппуФайлов
End Sub
 
Хорошо. Для начала замените 1 на 2 в строке
Код
For i = 1 To lLastRow

Уже столько раз это повторялось...
 
Цитата
В каком листе данные? В каком листе код?
Файлы в каталоге C:\1\
Цитата
Для начала замените ... Уже столько раз это повторялось...
Здесь поправил

Файлы приложил.
 
И что не работает? Поместите туда файлы 1.jpg, 2.jpg и запустите код.
(Вот уж такой ошибки не ожидал  :) )
И действительно - зачем там два аналогичных кода? Достаточно или одного на кнопке, или одного, который вызывать кнопкой как выше объяснялось.
Изменено: Hugo - 24.04.2013 21:14:13
 
Я же говорил, что не силен в программировании.
Всем спасибо! Теперь научился!!.

Отдельное спасибо Hugo)
 
Добрый день! Отличная тема, спасибо! Из нее и давно используемого мной макроса, взятого тут, собрал комплексный. Вызов макроса после загрузки - сочетанием Cntrl + Alt + S. В первой вкладке выводятся файлы из выбраной папки. Затем можно вручную, либо средствами функции ВПР сопоставить полученным имеющимся именам новые, в столбце D. Далее на второй вкладке программы вводите расширение новых фалов (без точки), и стартуете. Времени было немного, не вставил в код никаких проверок (типа если такой файл уже есть..) - так что будьте внимательней.
 
Отличный макрос!!! Спасибо!! Вот только пришлось посидеть разобраться. У меня тоже на 53 строке ошибка выскакивает. Это происходит из-за того, что процедура CommandButton2_Click() не видит путь к папке sPath и ПутьКПапке$ что-то не то с ними не могу понять до конца. Если прописать вручную путь к папке в коде,
Код
Private Sub CommandButton2_Click()
Dim OldName As String, NewName As String, sPath As String, NewExist As String

Dim i As Long, lLastRow As Long
If MsgBox("Начать?", vbOKCancel Or vbQuestion) = vbOK Then

  NewExist = ExistFiles.Value
  lLastRow = Cells(Rows.Count, 2).End(xlUp).Row

   For i = 11 To lLastRow
   
      sPath = "c:\1\"
      ПутьКПапке$ = sPath
      OldName = ПутьКПапке$ & Cells(i, 2) '
      NewName = ПутьКПапке$ & Cells(i, 4) & "." & NewExist '
      Name OldName As NewName '
      
   Next i
   
   Else
   
   Exit Sub
End If
End Sub

то все работает на ура. Но вот хочется, чтобы путь прописывался тот, который указывали при выборе папки. Подскажите, что там дописать нужно? Спасибо.
Страницы: 1
Читают тему
Наверх