Страницы: 1
RSS
Макрос сохранения копии листа - не работает! Почему?
 
Здравствуйту!  
Помогите разобраться, почему не работает макрос.  
 
Sub SAVE()  
 
    Dim strDate As String  
  ' Получение текущей даты и представление ее в формате "дд мм гг"  
    strDate = Format(Now(), "dd mm yy")  
  ' Копируем лист  
   Worksheets("Лист1").Copy  
   ' Сохранение книги в ту же папку под новым именем  
   Workbook.SaveAs ActiveWorkbook.Path & "\Copy " & strDate  
   ActiveWorkbook.Close  
     
End Sub  
 
С ув. VovanRU.
 
Уточню.  
Новую книгу лучше бы сохранить под именем взятым, например с ячейки А1.
 
Скорее всего, у Вас выражение  Format(Now(), "dd mm yy") возвращает слеши, т.е. дата получается вида: дд/мм/гг  
А слеши в названия файла нельзя.  
Резьюм:    
1. либо другой формат:  Format(Now(), "dd_mm_yy")  
2. либо strDate=Replace(strDate,"/"," ")
Bite my shiny metal ass!      
 
Не, с датой все нормально.  
Уточню конкретнее.  
Новую книгу лучше бы сохранить под именем взятым, например с ячейки А1 + дата.  
{quote}{login=The_Prist}{date=18.01.2010 11:50}{thema=}{post}Может все же    
ActiveWorkbook.SaveAs ActiveWorkbook.Path & "\Copy " & strDate{/post}{/quote}  
Согласен. Спасибо.  
 
С ув. VovanRU.
 
Сохранение с именем из ячейки - популярная тема.  
И еще рекомендую вместо ActiveWorkbook.Path & "\Copy " & strDate  
использовать    
Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & "Copy " & strDate  
Кстати, .xls на конец может вставить?  
Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & "Copy " & strDate & ".xls"  
ладно, с ячейкой:  
Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & Range("A1") & strDate & ".xls"
Bite my shiny metal ass!      
 
{quote}{login=Лузер™}{date=18.01.2010 12:01}{thema=}{post}ладно, с ячейкой:  
Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & Range("A1") & strDate & ".xls"{/post}{/quote}  
Чёт матерится на данную строку.    :(  
 
С ув. VovanRU.
 
Конечно, будет материться.  
Поскольку Вам привели пример не СТРОКИ, а ЧАСТИ СТРОКИ...  
 
Вместо  
 
Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & Range("A1") & strDate & ".xls"  
 
 
напишите  
 
activeworkbook.SaveAs Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & Range("A1") & strDate & ".xls"
 
{quote}{login=EducatedFool}{date=18.01.2010 01:01}{thema=}{post}activeworkbook.SaveAs Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, "") & Range("A1") & strDate & ".xls"{/post}{/quote}  
Ну извините дурака...  :)  
Спасибо ВСЕМ, все работает!  
 
С ув. VovanRU.
 
Ребят, помогите.  
Сам дупля не дам.  
Какой то глюк с этим сохранением.  :(((  
В оригинале у меня такая строка сохранения:  
 
   ActiveWorkbook.SaveAs Replace(ActiveWorkbook.FullName, ActiveWorkbook.Name, _  
       "") & Range("D12") & Range("E14") & Range("F12") & "_" & Range("H12") & ".xls"  
 
Глюк в чём: макрос выполняется - а файла не нахожу!  :(((  
Переименовываю файл, запускаю макрос - сохраненный файл в той же папке, что и оригинал. Переношу этот же переименованный файл в другую папку - нифига опять!  :(  
В чем загвоздка, а?!  
Помогите, пожалуйста, срочно надо!!!  
 
С ув. VovanRU.
 
Люди-и-и!!!  
Может кто подскажет?  
Нашел куда сохраняются новые файлы в случаях, описанных ранее:  
c:\Documents and Settings\Администратор\Мои документы\  
Вопрос 1: почему!  
Вопрос 2: как этого избежать?  
 
С ув. VovanRU.
 
> Вопрос 1: почему!  
 
Потому, что Вы запускаете этот код в НЕСОХРАНЁННОМ РАНЕЕ файле.  
Соответственно, для этого случая:  
ActiveWorkbook.FullName=""  
ActiveWorkbook.Name=""  
 
И путь для сохранения получается таким: (без указания пути)  
Range("D12") & Range("E14") & Range("F12") & "_" & Range("H12") & ".xls"  
 
Соответственно, если Excel не знает, в какую папку сохранять файл, он его сохраняет в папку МоиДокументы.  
 
 
> Вопрос 2: как этого избежать?  
Сохранить файл перед запуском макроса.
 
{quote}{login=EducatedFool}{date=19.01.2010 08:04}{thema=}{post}> Вопрос 2: как этого избежать?  
Сохранить файл перед запуском макроса.{/post}{/quote}  
Здравствуйте,EducatedFool.  
Спасибо за разъяснения.  
Файл в моем примере создан из листа оригинального файла.  
Да, когда указываю конкретный путь - без проблем.  
Т.е. Вы предлагаете временно сохранить файл под каким-нибудь именем, а далее по коду? Все дело в том, что с этим файлом не я один буду работать, поэтому и не знаю, где он будет находиться, а новый файл надо сохранить в одной папке с исходным. Как быть?  
 
С ув. VovanRU.
 
>>Файл в моем примере создан из листа оригинального файла.  
Тогда так*:  
Replace(ThisWorkbook.FullName, ThisWorkbook.Name, _  
"")  
*Если код расположен в "оригинальном" файле
Bite my shiny metal ass!      
 
Вот она, истина!!!  :)  
Спасибо огромное Лузер™, выручили!  
 
С ув. VovanRU.
 
Добрый день, у меня почему-то Ваши скрипты вообще не работают. Мне нужно следующее: есть файл исходник, в который будут вноситься изменения и с помощью кнопки должен работать макрос. Макрос должен пересохранять этот файл в определенную папку под именем текущей даты, в формате дд.мм.гггг
Страницы: 1
Читают тему
Наверх
Loading...