Страницы: 1
RSS
Макрос автосохранения по расписанию.
 
Добрый день
Сделал макрос автосохранения, запускается планировщиком задач Windows
делает копию файла и закрывается.
Скрытый текст
Помогите пожалуйста решить такую проблему.
Если использовать команду
Application.Quit
то закрываются все открытые книги.
Если использовать
ActiveWindow.Close или ActiveWorkbook.Close
при открытых книгах все нормально, а если не одной книги не было открыто,
то потом остается открытый Excel.
Можно сделать типа проверки на открытые книги.
Если открыты книги
ActiveWindow.Close иначе Application.Quit.
Ну или как-то подругому это реализовать.
Спасибо
 
Можно посчитать число книг кроме PERSONAL.XLS(B), если число >1 значит есть другие открытые книги
Код
Dim wb As Workbook, i&
For Each wb In Workbooks
  If Not LCase(wb.Name) Like "personal.xls*" Then i = i + 1
Next
If i > 1 Then ThisWorkbook.Close True Else Application.Quit
 
А попробуйте через
Код
WorkBOoks.count
С уважением,
Федор/Все_просто
 
Казанский,
Спасибо, отлично все сработало.
Все_просто,
Надо дальше продолжать самообразование.
Подскажите, а как WorkBooks.count применять,
можно небольшой примерчик.
 
А что тут подсказывать? Вы вроде и так неплохо разбираетесь.
Count - свойство объектов (коллекций), дающее количество. Как водится, у многих коллекционных объектов есть это свойство. Worksheets, Workbooks, Charts, Cells, Areas - это только то, что пришло на ум. Если вызываете это свойство, вы, по сути, хотите узнать сколько instance (как переводится на русский? о_О) этих коллекций на момент прогона кода присутствует. Если открытых книг несколько, то count вроде как, при прочих равных, должен показывать, число итемов этого объекта.

По поводу personal.xls. Зачем делать перебор? Нельзя ли обойтись простым блоком on error resume next - on error goto 0, где и закрывается нужная книга?
Кто-то еще пользуется персональными книгами? Не легче ли делать сразу надстройку и все макросы сохранять в надстройке? Можно даже сделать сразу несколько надстроек и подгружать их по мере надобности.
Предложение по коду. Посмотрите в сторону метода SaveCopyAs - то, что доктор прописал. Как раз делает бэкап, то есть то, что вам нужно, не сохраняя при этом текущую книгу. Еще можно сделать лог изменений/сохранений в отдельном лог-файле. Я что-то подобное делал у себя на работе.
С уважением,
Федор/Все_просто
 
Все_просто,
Спасибо, за наводку.
У меня не много другой метод, я записываю макрос потом его изучаю, так же и другие макросы изучаю.
С английским туговато, поэтому приходиться выкручиваться.
И если Вам не жалко и не трудно могли бы поделиться тем что делали у себя на работе.
Спасибо.
 
Ну я пользуюсь персональной книгой. В частности и потому, что макросы из надстройки не видны в списке макросов, их сложно использовать.
А свои UDF уже давно перенёс в надстройку - их как раз так использовать проще.
По вопросу: можно проверить наличие видимых книг - если таких нет, то программу можно закрывать.
Потому что у меня например таких невидимых кроме персонала ещё одна есть. И надстроек пяток...
Страницы: 1
Наверх