Решил решить (sory за тавтологию) задачку при помощи макрокодера: Сохранить изменения в текущем файле (1), сохранить как этот же файл в другой папке (2) с закрытием текущего файла (3) и открыть из новой папки новый файл (4).
Учитывая, что макрокодер не записывает команду Сохранить как (или я не правильно делаю), я пошел длинным путем: записал каждое действие по отдельности + нашел в интернете отдельные макросы и вот что получилось: [vba]
Код
Sub Макрос2() Range("A1").Select ActiveWorkbook.Save ActiveWorkbook.SaveCopyAs "F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" ActiveWorkbook.Close Workbooks.Open Filename:="F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" End Sub
[/vba]
Можете закидать помидорами, по другому не умею =)
Протестировал каждый макрос по отдельности и затолкал в один макрос.
Затык макроса в моменте когда закрываю текущую книгу и пытаюсь открыть сохраненный как файл. То есть файл не открывается при закрытом файле откуда запущен макрос.
Подскажите, пожалуйста, где ошибаюсь
Добрый вечер!
Решил решить (sory за тавтологию) задачку при помощи макрокодера: Сохранить изменения в текущем файле (1), сохранить как этот же файл в другой папке (2) с закрытием текущего файла (3) и открыть из новой папки новый файл (4).
Учитывая, что макрокодер не записывает команду Сохранить как (или я не правильно делаю), я пошел длинным путем: записал каждое действие по отдельности + нашел в интернете отдельные макросы и вот что получилось: [vba]
Код
Sub Макрос2() Range("A1").Select ActiveWorkbook.Save ActiveWorkbook.SaveCopyAs "F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" ActiveWorkbook.Close Workbooks.Open Filename:="F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" End Sub
[/vba]
Можете закидать помидорами, по другому не умею =)
Протестировал каждый макрос по отдельности и затолкал в один макрос.
Затык макроса в моменте когда закрываю текущую книгу и пытаюсь открыть сохраненный как файл. То есть файл не открывается при закрытом файле откуда запущен макрос.
Попробовал поменять местами последние две команды:
[vba]
Код
Sub Макрос2() Range("A1").Select ActiveWorkbook.Save ActiveWorkbook.SaveCopyAs "F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" Workbooks.Open Filename:="F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" ActiveWorkbook.Close End Sub
[/vba]
Закрывается Сохраненная как книга, а нужно чтобы она осталась открытой, а исходный файл закрылся
Попробовал поменять местами последние две команды:
[vba]
Код
Sub Макрос2() Range("A1").Select ActiveWorkbook.Save ActiveWorkbook.SaveCopyAs "F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" Workbooks.Open Filename:="F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" ActiveWorkbook.Close End Sub
[/vba]
Закрывается Сохраненная как книга, а нужно чтобы она осталась открытой, а исходный файл закрылсяAnis625
ActiveWorkbook - активный файл, а Вам нужно ThisWorkbook - тот файл, в котором находится исполняемый макрос Но дело даже не в этом. Когда Вы пересохраняете файл в другую папку с помощью SaveAs (а не SaveCopyAs) , то это уже не тот файл, который Вы открыли первоначально, а тот, который в другой папке, сохраненный с SaveAs. Поэтому открывать его еще раз не нужно, он уже открыт. А вот тот файл, из которого Вы запускали макрос - он закрыт. Поэтому Вам нужно только 2 строки кода [vba]
Код
Sub Макрос2() ActiveWorkbook.Save ActiveWorkbook.SaveAs "F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" End Sub
[/vba] И да, если Вы закрываете файл, в котором выполняется макрос, то этот макрос тоже закрывается и конечно прекращает свою работу
ActiveWorkbook - активный файл, а Вам нужно ThisWorkbook - тот файл, в котором находится исполняемый макрос Но дело даже не в этом. Когда Вы пересохраняете файл в другую папку с помощью SaveAs (а не SaveCopyAs) , то это уже не тот файл, который Вы открыли первоначально, а тот, который в другой папке, сохраненный с SaveAs. Поэтому открывать его еще раз не нужно, он уже открыт. А вот тот файл, из которого Вы запускали макрос - он закрыт. Поэтому Вам нужно только 2 строки кода [vba]
Код
Sub Макрос2() ActiveWorkbook.Save ActiveWorkbook.SaveAs "F:\Отправка сообщений из Excel\Для отправки\Информация по картам и СоЦ (для отправки).xlsb" End Sub
[/vba] И да, если Вы закрываете файл, в котором выполняется макрос, то этот макрос тоже закрывается и конечно прекращает свою работу_Boroda_
_Boroda_, благодарю Вас за помощь, получилось именно так как нужно =)
И спасибо Вам за краткий ликбез по макросам
Подскажите, пожалуйста, почему макрокодер не записывает команду Сохранить как? После запуска макрокодера нажимаю сохранить (через иконку), потом Файл-Сохранить как - Выбираю папку - Сохраняю - Заканчиваю запись. Макрос записывает только команду [vba]
Код
ActiveWorkbook.Save
[/vba]
_Boroda_, благодарю Вас за помощь, получилось именно так как нужно =)
И спасибо Вам за краткий ликбез по макросам
Подскажите, пожалуйста, почему макрокодер не записывает команду Сохранить как? После запуска макрокодера нажимаю сохранить (через иконку), потом Файл-Сохранить как - Выбираю папку - Сохраняю - Заканчиваю запись. Макрос записывает только команду [vba]