Страницы: 1
RSS
Как переименовать группу файлов (.jpg) спомощью VBA XL ?
 
Как переименовать группу файлов (.jpg) спомощью VBA XL ?  
Есть папка с изображениями, в ней фото с всевозможными именами, как их переименовать в упорядкованные имена ?  
(Знаю, что есть подобные программы, но сдесь же спецы VBA)  
:)
 
я эту задачу решал на С++, но думаю и VBA не хуже справится
 
вот пример макроса, кот ищет папку с именем, совпадающим с текущей датой, перебирает файлы в ней, выбирая из имени файла нужную информацию..  
для переименования нужно считать список файлов!! потом переименовывать по этому списку.  
команда Name .. as ..  
 
Function count_in_folder()  
   Dim sdir As String, sname As String, n As Integer, x As Long, c As Integer, i As Integer  
   sdir = GetSetting("wd", "naclad", "savedir")  
       Dim dt As String, savedir_r As String, cdir As String  
   dt = Format(Now, "dd_mm_yy")  
   savedir_r = sdir & dt  
   On Error Resume Next  
   cdir = CurDir()  
   ChDir (savedir_r)  
   If Err.Number <> 0 Then  
       Err.Clear  
   Else  
'        MkDir (savedir_r)  
       sname = Dir("*")  
       Do  
           n = InStr(1, sname, "_")  
           If n > 0 Then  
               sname = Replace(LTrim(Mid(sname, n + 1, Len(sname) - n - 4)), Chr(160), "")  
'                For i = 1 To 5  
'                    c = Asc(Mid(sname, i, 1))  
'                Next  
               x = x + Val(sname)  
           End If  
           sname = Dir  
           If sname = "" Then  
               Exit Do  
           Else  
                 
           End If  
       Loop  
       If Err.Number <> 0 Then  
           Err.Clear  
       End If  
'    Else  
'        ChDir (cdir)  
   End If  
       On Error GoTo 0  
   ChDir (cdir)  
   count_in_folder = x  
End Function
 
{quote}{login=slan}{date=13.12.2007 11:40}{thema=}{post}вот пример макроса, кот ищет папку с именем, совпадающим с текущей датой, перебирает файлы в ней, выбирая из имени файла нужную информацию..  
для переименования нужно считать список файлов!! потом переименовывать по этому списку.  
команда Name .. as ..  
 
Function count_in_folder()  
   Dim sdir As String, sname As String, n As Integer, x As Long, c As Integer, i As Integer  
   sdir = GetSetting("wd", "naclad", "savedir")  
       Dim dt As String, savedir_r As String, cdir As String  
   dt = Format(Now, "dd_mm_yy")  
   savedir_r = sdir & dt  
   On Error Resume Next  
   cdir = CurDir()  
   ChDir (savedir_r)  
   If Err.Number <> 0 Then  
       Err.Clear  
   Else  
'        MkDir (savedir_r)  
       sname = Dir("*")  
       Do  
           n = InStr(1, sname, "_")  
           If n > 0 Then  
               sname = Replace(LTrim(Mid(sname, n + 1, Len(sname) - n - 4)), Chr(160), "")  
'                For i = 1 To 5  
'                    c = Asc(Mid(sname, i, 1))  
'                Next  
               x = x + Val(sname)  
           End If  
           sname = Dir  
           If sname = "" Then  
               Exit Do  
           Else  
                 
           End If  
       Loop  
       If Err.Number <> 0 Then  
           Err.Clear  
       End If  
'    Else  
'        ChDir (cdir)  
   End If  
       On Error GoTo 0  
   ChDir (cdir)  
   count_in_folder = x  
End Function{/post}{/quote}  
 
Прикрепите, пожалуйста, готовый макрос сюда. А то у меня при создании макросов не появляется никаких кнопок чтобы запустить работу макроса
 
{quote}{login=The_Prist}{date=23.09.2009 08:22}{thema=}{post}Можете еще заглянуть в эту тему:  
"Как отобрать из папки картинки в формате jpg, имена которых перечислены в Экселевской таблице?"  
Когда я писал, она еще не ушла с первой страницы, но когда читаете Вы, возможно уже на вторую уехела, но не дальше.{/post}{/quote}  
Можно более подробную схему создания кнопки для работы макроса?
 
В правила
 
{quote}{login=The_Prist}{date=23.09.2009 08:22}{thema=}{post}Можете еще заглянуть в эту тему:  
"Как отобрать из папки картинки в формате jpg, имена которых перечислены в Экселевской таблице?"  
Когда я писал, она еще не ушла с первой страницы, но когда читаете Вы, возможно уже на вторую уехела, но не дальше.{/post}{/quote}  
С помощью этого макроса я смогу с любого на любое название менять?или есть какие-то ограничения?
 
Кто спрашивает?
 
{quote}{login=Юрий М}{date=25.09.2009 01:02}{thema=}{post}Кто спрашивает?{/post}{/quote}  
Новая
 
{quote}{login=The_Prist}{date=25.09.2009 01:16}{thema=}{post}А подписываться релиия не позволяет? :-)  
С помощью макроса в указанной теме Вы перемещаете файлы в указанную папку. Поправив чуток макрос можно и переименование сделать. Но насколько я помню именно Вы инициатор той темы? Или я ошибаюсь?{/post}{/quote}  
Именно так,я инициатор той темы))макрос поправлять будем для переименования?))
 
{quote}{login=Новая}{date=28.09.2009 02:10}{thema=Re: }{post}{quote}{login=The_Prist}{date=25.09.2009 01:16}{thema=}{post}А подписываться релиия не позволяет? :-)  
С помощью макроса в указанной теме Вы перемещаете файлы в указанную папку. Поправив чуток макрос можно и переименование сделать. Но насколько я помню именно Вы инициатор той темы? Или я ошибаюсь?{/post}{/quote}  
Именно так,я инициатор той темы))макрос поправлять будем для переименования?)){/post}{/quote}  
В сущности задача такая же как и здесь http://www.planetaexcel.ru/forum.php?thread_id=9913 только переименовывать нужно картинки, а не txt-файлы.
 
Помогите,пожалуйста,срочно нужно решение.
 
Наберите в окне поиска: переименовать файлы
 
{quote}{login=Юрий М}{date=28.09.2009 11:02}{thema=}{post}Наберите в окне поиска: переименовать файлы{/post}{/quote}  
Это первое что я сделала зайдя на сайт))  
Дело в том что не смотря на предложенные варианты воспользоваться я ими не могу,не удаётся создать макрос,поэтому и прошу скопировать готовый вариант сюда.
 
{quote}{login=Новая}{date=28.09.2009 11:25}{thema=Re: }{post}{quote}{login=Юрий М}{date=28.09.2009 11:02}{thema=}{post}Наберите в окне поиска: переименовать файлы{/post}{/quote}  
не удаётся создать макрос,поэтому и прошу скопировать готовый вариант сюда.{/post}{/quote}  
Вот по первой же ссылке по поиску макрос от Prist. Копирую "сюда". Чем Вас не устроил текст макроса "там"?  
Option Explicit  
Sub ПереименоватьГруппуФайлов()  
Dim OldName As String, NewName As String, sPath As String  
Dim i As Long, lLastRow As Long  
sPath = "C:\Documents and Settings\Родители\Рабочий стол\Базы\Disks\Дизайны\K&K\kik\"  
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row  
For i = 1 To lLastRow  
OldName = sPath & Cells(i, 1) & ".GIF" 'старое имя в ячейке  
NewName = sPath & Cells(i, 2) & ".GIF" 'новое имя  
Name OldName As NewName  
Next i  
End Sub
 
{quote}{login=Юрий М}{date=28.09.2009 11:40}{thema=Re: Re: }{post}{quote}{login=Новая}{date=28.09.2009 11:25}{thema=Re: }{post}{quote}{login=Юрий М}{date=28.09.2009 11:02}{thema=}{post}Наберите в окне поиска: переименовать файлы{/post}{/quote}  
не удаётся создать макрос,поэтому и прошу скопировать готовый вариант сюда.{/post}{/quote}  
Вот по первой же ссылке по поиску макрос от Prist. Копирую "сюда". Чем Вас не устроил текст макроса "там"?  
Option Explicit  
Sub ПереименоватьГруппуФайлов()  
Dim OldName As String, NewName As String, sPath As String  
я не умею этим пользоваться, есть макрос.я создала макрос,но что делать дальше я не знаю.нет кнопки запускающей работу макроса,не понятно где должны находится картинки которые буду переименовывать и всё в таком духе.куча вопросов.  
Dim i As Long, lLastRow As Long  
sPath = "C:\Documents and Settings\Родители\Рабочий стол\Базы\Disks\Дизайны\K&K\kik\"  
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row  
For i = 1 To lLastRow  
OldName = sPath & Cells(i, 1) & ".GIF" 'старое имя в ячейке  
NewName = sPath & Cells(i, 2) & ".GIF" 'новое имя  
Name OldName As NewName  
Next i  
End Sub{/post}{/quote}
 
я не умею этим пользоваться, есть макрос.я создала макрос,но что делать дальше я не знаю.нет кнопки запускающей работу макроса,не понятно где должны находится картинки которые буду переименовывать и всё в таком духе.куча вопросов.
 
Не цитируйте более трёх сообщений. ВООБЩЕ старайтесь не цитировать без необходимости.
 
Хорошо))
 
{quote}{login=Новая}{date=28.09.2009 11:56}{thema=Re: Re: Re: Re: }{post}не понятно где должны находится картинки которые буду переименовывать {/post}{/quote}  
Вы не знаете где будут находится картинки? А мы откуда можем знать где У ВАС картинки?
 
я не знаю где картинки ДОЛЖНЫ находиться для того чтобы макрос работал.и как макрос запустить я тоже не знаю.
 
{quote}{login=Новая}{date=28.09.2009 12:09}{thema=}{post}я не знаю где картинки ДОЛЖНЫ находиться для того чтобы макрос работал.и как макрос запустить я тоже не знаю.{/post}{/quote}  
 
Ну тогда Вам в справку Эксель F1...  
:)))  
даже я понял, а я чайник знатный :)))
 
{quote}{login=Новая}{date=28.09.2009 12:09}{thema=}{post}я не знаю где картинки ДОЛЖНЫ находиться для того чтобы макрос работал.и как макрос запустить я тоже не знаю.{/post}{/quote}  
Чтобы макрос заработал, Вы ДОЛЖНЫ знать где будут находиться файлы. Создайте папку, например C:\Картинки, поместите туда все файлы для переименования. После этого в макросе поменяйте строку:  
sPath = "C:\Documents and Settings\Родители\Рабочий стол\Базы\Disks\Дизайны\K&K\kik\"  
поменяйте:  
sPath = "C:\Картинки"
 
значит я Вас переплюнула))так найдётся добрая душа которая сюда готовый макрос прикрепит?))
 
А Вам разве не ГОТОВЫЙ макрос показали?
 
{quote}{login=Новая}{date=28.09.2009 12:21}{thema=}{post}значит я Вас переплюнула))так найдётся добрая душа которая сюда готовый макрос прикрепит?)){/post}{/quote}  
Просто цитата из "http://www.sql.ru/forum/actualthread.aspx?tid=641428":  
"3. Я так понял, что... макрос вы не напишите (как я понял), значит надо кого-то просить. Тем самым вы ставите результаты работы в зависимость от макроса, написанного пусть хорошим, но "залетным" программистом. Вы думаете этот макрос не придется редактировать? Если да , то КТО будет ЭТО делать?..  
Если я тебя не отговорил, то найди здесь программиста Pavel55 - он специализируется на изготовлении макросов на заказ. Код у него грамотный и красивый." - 22/02/09 - "вчера, 19:47".  
PS И ножками не топать, и слез не лить, пожалуйста. Тем более, что сторонних прог по переименованию ( а тем более картинок) пруд-пруди. И при чем здесь вообще Excel?!...
 
Когда сохраняю макрос выскакивает ошибка 53 и Name OldName As NewName выделяется жёлтым цветом, что это означает?
 
А как это - сохранить макрос?
 
Разобралась спасибо
Страницы: 1
Читают тему
Наверх