Страницы: 1
RSS
активировать откритую книгу excel из word
 
добрий день!

Прошу помочь с макросом для активации откритой книги excel из word
есть макрос которий активирует из excel  откритую книгу excel,  
но  из word не работает
Код
Sub activ()
Windows("work.xlsx").Activate
End Sub
 
Потому что надо сначала подключиться к Excel. Windows относится только к тому приложению, из которого к нему обращаются, в данном случае это Word.
Код
Dim objExApp As Object
    On Error Resume Next
    'пытаемся подключится к объекту Excel
    Set objExApp = GetObject(, "Excel.Application")
    If Not objExApp Is Nothing Then
         Application.ActivateMicrosoftApp xlMicrosoftExcel
        objExApp.Workbooks("work.xlsx").Activate
    End If
Если в дальнейшем планируете какие-то манипуляции с книгой делать, то Вам надо чуток мат.часть подтянуть.
Подробнее: Как из Excel обратиться к другому приложению
Изменено: The_Prist - 06.06.2017 11:39:07
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
ошибка
metod or data member not found
библиотека microsoft excel 14 object library подключена
 
А у меня нет ошибок. Т.к. Вы не указываете на какой строке - то и говорить не о чем.
В моем коде её тупо не может возникнуть, т.к. стоит обработчик ошибок. Могу лишь предположить, что Excel вообще не запущен.
Да, еще попробуйте убрать строку: Application.ActivateMicrosoftApp xlMicrosoftExcel
в Word-е этого метода нет вроде. По ошибке воткнул.
Больше сказать нечего.
А библиотека в References в данном случае вообще не нужна. Но её упоминание говорит о том, что статью либо не читали, либо не вникли в суть.
Изменено: The_Prist - 06.06.2017 13:24:14
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist
ошибка била на строке
Код
Application.ActivateMicrosoftApp xlMicrosoftExce
убрав єту строку ничего не происходит, ексель-файл запущен
 
Цитата
sergey2303 написал:
ексель-файл запущен
а чего еще надо? Цель активации окна книги какая? Или конечная цель - это именно активация? Тут следует понять - Вы работаете из одного приложения, а активировать хотите окно другого, к которому прямого доступа нет и не будет. Если кровь из носу надо активировать - возможно, имеет смысл смотреть в сторону API.
Есть еще вариант вроде такого:
Код
Application.Windows(1).WindowState = wdWindowStateMinimize
но нужен будет цикл по всем окнам Word-а. И сработает исключительно если за окнами Word-а прячется окно Excel-я. Если же открыто еще что-то, то есть шанс скрыть Word, но не активировать Excel.
Хотя что-то подсказывает, что конечная цель может быть достигнута без всякой активации...
Изменено: The_Prist - 06.06.2017 13:59:01
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist
цель активации-на екране должна отобразится ета книга
 
Выше уже все написал в таком случае. Тема активации окон через API поднимались - используйте поиск.
Изменено: The_Prist - 06.06.2017 13:59:37
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
получилось, добавил в конце строку
Код
AppActivate "work.xlsx"
итог
Код
Dim objExApp As Object
    On Error Resume Next
    'пытаемся подключится к объекту Excel
    Set objExApp = GetObject(, "Excel.Application")
    If Not objExApp Is Nothing Then
         Application.ActivateMicrosoftApp xlMicrosoftExcel
        objExApp.Workbooks("work.xlsx").Activate
    End If
AppActivate "work.xlsx"
 
Если Вы работает из Word, то и форум ищите соответствующий - здесь же форум по Excel.
Страницы: 1
Читают тему
Наверх