Добрый день дамы и господа Когда запускаю макрос с панели быстрого доступа Excel, то обычно вместе с рабочей Книгой открывается и Книга содержащая макросы. Итого после проигрывания макроса мы имеем открытыми две книги, и что печально Книга с макросами лежит выше и её приходится сворачивать/закрывать. В этой теме _Boroda_ в Сообщение № 17 предложил код, который закрывает и сразу же открывает Книгу. Я его попытался вырвать и применить для общих нужд, но лучшим из результатов стало закрытие всех Книг и открытие Книги содержащей макросы. Выделял и .Activate и .Select результата не получил. [vba]
Код
Workbooks.Application.DisplayAlerts = False 'без лишних слов Excel.ActiveWorkbook.Save 'просто сохраним With ActiveWorkbook 'надеюсь, что активна рабочая Книга fn_ = .Name 'присваиваю активной Книге переменную Application.Quit 'закроем всё Workbooks.Open (fn_) 'откроем через переменную End With
[/vba] этот код ругается на то, что не может найти рабочую книгу.
Добрый день дамы и господа Когда запускаю макрос с панели быстрого доступа Excel, то обычно вместе с рабочей Книгой открывается и Книга содержащая макросы. Итого после проигрывания макроса мы имеем открытыми две книги, и что печально Книга с макросами лежит выше и её приходится сворачивать/закрывать. В этой теме _Boroda_ в Сообщение № 17 предложил код, который закрывает и сразу же открывает Книгу. Я его попытался вырвать и применить для общих нужд, но лучшим из результатов стало закрытие всех Книг и открытие Книги содержащей макросы. Выделял и .Activate и .Select результата не получил. [vba]
Код
Workbooks.Application.DisplayAlerts = False 'без лишних слов Excel.ActiveWorkbook.Save 'просто сохраним With ActiveWorkbook 'надеюсь, что активна рабочая Книга fn_ = .Name 'присваиваю активной Книге переменную Application.Quit 'закроем всё Workbooks.Open (fn_) 'откроем через переменную End With
[/vba] этот код ругается на то, что не может найти рабочую книгу.Yar4i4
fp_ равно путь & имя ? расширение А у Вас что написано? Что у Вас в переменной fn_ ? И вообще не совсем ясно в чем Ваш вопрос-то заключается? Что в итоге получить нужно?
fp_ равно путь & имя ? расширение А у Вас что написано? Что у Вас в переменной fn_ ? И вообще не совсем ясно в чем Ваш вопрос-то заключается? Что в итоге получить нужно?_Boroda_
Нужно чтобы из двух открытых Книг (Рабочая и С макросами) закрылись обе, и сразу же открылась Рабочая. В одной из вариаций у меня получилось, но открылась не рабочая (как хочу), а Книга с макросами.
Нужно чтобы из двух открытых Книг (Рабочая и С макросами) закрылись обе, и сразу же открылась Рабочая. В одной из вариаций у меня получилось, но открылась не рабочая (как хочу), а Книга с макросами.Yar4i4
Сообщение отредактировал Yar4i4 - Вторник, 28.03.2017, 15:43
Workbooks.Application.DisplayAlerts = False 'без лишних слов Excel.ActiveWorkbook.Save 'просто сохраним With ActiveWorkbook 'надеюсь, что активна рабочая Книга fn_ = .Name 'присваиваю активной Книге переменную fp_ = .Path & "\" & fn_ .Close Workbooks.Open (fp_) 'откроем через переменную End With
[/vba]
Один раз правильно последующие нет...
Вышло)) Спасибо [vba]
Код
Workbooks.Application.DisplayAlerts = False 'без лишних слов Excel.ActiveWorkbook.Save 'просто сохраним With ActiveWorkbook 'надеюсь, что активна рабочая Книга fn_ = .Name 'присваиваю активной Книге переменную fp_ = .Path & "\" & fn_ .Close Workbooks.Open (fp_) 'откроем через переменную End With
у Вас имя активной книги. Вам же нужно не активной, а какой-то другой. Вот и присвойте переменной fn_ имя нужной книги. А потом открывайте. Кстати, про путь аналогично логика должна быть
А какую он еще должен найти, если выше у Вас написано
у Вас имя активной книги. Вам же нужно не активной, а какой-то другой. Вот и присвойте переменной fn_ имя нужной книги. А потом открывайте. Кстати, про путь аналогично логика должна быть_Boroda_
Не учел статичный путь и статичное имя у файла с макросами. Всё вышло. Может не так красиво и может длиннее положенного, но работает. Спасибо Вам. [vba]
Код
With ActiveWorkbook 'надеюсь, что активна рабочая Книга fn_ = .Name 'присваиваю активной Книге переменную fp_ = .Path & "\" & fn_ Application.DisplayAlerts = 0 .SaveAs Filename:=fp_, FileFormat:=xlOpenXMLWorkbook Application.DisplayAlerts = 1 .Close Workbooks.Open (fp_) 'откроем через переменную End With Workbooks("Макрос").Close
[/vba]
*** Ошибка Excel "Нет доступ к Рабочей Книге" выскакивает - лечится нажатием на "ОК" или [vba]
Код
...End With Workbooks.Application.DisplayAlerts = False 'без лишних слов Workbooks("Макрос").Close...
[/vba] *** Немного расскажу почему необходимо было закрыть Рабочую Книгу, а потом сразу же открыть. Дело в том, что не удавалось скопировать лист с третьей (сторонней) Книги без закрытия и открытия ("переоткрытия") Рабочей Книги. Рабочая Книга - являлась продуктом экспорта из сторонней программы и была подвержена лишь сохранению на Диске D компьютера (т.е. абсолютно новая Книга), но этого было не достаточно для импорта в неё листов из третьих (сторонних) Книг. О схожем явлении _Boroda_ говорил в вышеупомянутой теме, но о Книге доноре, здесь же потребовалось и Книгу источник "переоткрывать". Хорошего дня Вам дамы и господа
Не учел статичный путь и статичное имя у файла с макросами. Всё вышло. Может не так красиво и может длиннее положенного, но работает. Спасибо Вам. [vba]
Код
With ActiveWorkbook 'надеюсь, что активна рабочая Книга fn_ = .Name 'присваиваю активной Книге переменную fp_ = .Path & "\" & fn_ Application.DisplayAlerts = 0 .SaveAs Filename:=fp_, FileFormat:=xlOpenXMLWorkbook Application.DisplayAlerts = 1 .Close Workbooks.Open (fp_) 'откроем через переменную End With Workbooks("Макрос").Close
[/vba]
*** Ошибка Excel "Нет доступ к Рабочей Книге" выскакивает - лечится нажатием на "ОК" или [vba]
Код
...End With Workbooks.Application.DisplayAlerts = False 'без лишних слов Workbooks("Макрос").Close...
[/vba] *** Немного расскажу почему необходимо было закрыть Рабочую Книгу, а потом сразу же открыть. Дело в том, что не удавалось скопировать лист с третьей (сторонней) Книги без закрытия и открытия ("переоткрытия") Рабочей Книги. Рабочая Книга - являлась продуктом экспорта из сторонней программы и была подвержена лишь сохранению на Диске D компьютера (т.е. абсолютно новая Книга), но этого было не достаточно для импорта в неё листов из третьих (сторонних) Книг. О схожем явлении _Boroda_ говорил в вышеупомянутой теме, но о Книге доноре, здесь же потребовалось и Книгу источник "переоткрывать". Хорошего дня Вам дамы и господа Yar4i4
Сообщение отредактировал Yar4i4 - Среда, 29.03.2017, 09:53