Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2011, 17:36   #1
galleon2006
 
Регистрация: 15.09.2011
Сообщений: 3
По умолчанию Макрос для переименования файла.

Подскажите пожалуйста, как сделать переименование файла с помощью макроса, с добавлением даты перед началом имени файла.
Например, имя файла "Qwerty.doc", а нужно получить "15.09.11 - Qwerty.doc"
Я написал макрос, но он не переименовывает а создает новый файл, а нужно чтобы оставался только один файл


Sub SaveAsDate()
Dim strDate As String


strDate = Format(Now(), "ddmmyy")

ActiveDocument.SaveAs ActiveDocument.Path & "\" & strDate & " " & ActiveDocument.Name
End Sub
galleon2006 вне форума Ответить с цитированием
Старый 15.09.2011, 18:34   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

SaveAs - сохраняет под другим именем, добавьте удаление файла со старым именем
Код:
Sub SaveAsDate()
 Dim name As String
 name = ActiveDocument.name
 ActiveDocument.SaveAs ActiveDocument.Path & "\" & Format(Now(), "ddmmyy") & " - " & name
 Kill (ActiveDocument.Path & "\" & name)
End Sub
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 15.09.2011, 19:39   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

уверен, что Килл, когда нибудь даст сбой, автор проверите, отпишитесь пжл
Ципихович Эндрю вне форума Ответить с цитированием
Старый 15.09.2011, 19:47   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

конечно нужно проверять что при переименовании не возникло ошибки и такой файл существовал ...
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 15.09.2011, 22:10   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
конечно нужно проверять что при переименовании не возникло ошибки и такой файл существовал ...
нет позже именно на Килле, что-то типа он ещё занят когда хотим удалить, точно не помню
Ципихович Эндрю вне форума Ответить с цитированием
Старый 17.09.2011, 06:13   #6
galleon2006
 
Регистрация: 15.09.2011
Сообщений: 3
По умолчанию

Спасибо, с удалением работает нормально, пока без сбоев.
А из-за чего может возникнуть ошибка с занятостью файла? И разве при этом макрос выполнится удачно а не напишет, что произошла ошибка?
galleon2006 вне форума Ответить с цитированием
Старый 17.09.2011, 14:40   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от galleon2006 Посмотреть сообщение
А из-за чего может возникнуть ошибка с занятостью файла? И разве при этом макрос выполнится удачно а не напишет, что произошла ошибка?
нет, макрос не выполнится удачно, а напишет ошибку № 70
Ждите
Из-за чего? Ну он же не метеор, счёт идёт на доли секунды
Ципихович Эндрю вне форума Ответить с цитированием
Старый 17.09.2011, 15:09   #8
galleon2006
 
Регистрация: 15.09.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
нет, макрос не выполнится удачно, а напишет ошибку № 70
Ждите
Из-за чего? Ну он же не метеор, счёт идёт на доли секунды
Понял. А может быть тогда как то паузу добавить, чтобы ждал, к примеру 1-2 секунды, или такой функции нет?
galleon2006 вне форума Ответить с цитированием
Старый 17.09.2011, 15:45   #9
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Вроде бы есть, но лучше, наверно, поставить вначале (во 2-й строке)
Код:
DoEvents
http://yandex.ru/yandsearch?text=doevents
Sasha_Smirnov вне форума Ответить с цитированием
Старый 17.09.2011, 20:57   #10
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

А ещё никто не отменял для закрытых файлов оператора NAME (VBA)
Цитата:
Renames a disk file, directory, or folder.

Syntax

Name oldpathname As newpathname

The Name statement syntax has these parts:

Part Description
oldpathname Required. String expression that specifies the existing file name and location — may include directory or folder, and drive.
newpathname Required. String expression that specifies the new file name and location — may include directory or folder, and drive. The file name specified by newpathname can't already exist.
Пример из HELP
Код:
Dim OldName, NewName
OldName = "OLDFILE": NewName = "NEWFILE"    ' Define file names.
Name OldName As NewName    ' Rename file. 

OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE"
Name OldName As NewName    ' Move and rename file.
Aent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
форма для переименования файлов Ципихович Эндрю Microsoft Office Word 0 23.04.2011 15:11
Exel - при открытии файла через макрос, если файл отсутствует - виснет весь макрос gregory1b Microsoft Office Excel 2 14.10.2010 11:51
Макрос, запускающий макрос из другого закрытого файла petruha Microsoft Office Excel 7 14.03.2010 11:31
Макрос для вызова файла! SStone Microsoft Office Excel 3 02.03.2009 19:58