Как сделать Microsoft Word видимым после открытия файла Excel в Word VBA - PullRequest
0 голосов
/ 31 октября 2018

У меня есть макрос VBA Word, который открывает документ Word, затем открывает файл Excel, выбирает ссылку на ячейку и, наконец, отображает сообщение с помощью Msgbox. После открытия файла Excel у меня возникают проблемы с поиском кода, чтобы сделать Word видимым, чтобы пользователь мог просматривать сообщение Msgbox, не используя панель задач для переключения из Excel в Word. Я пробовал oWord.Visible = True, но VBA выдает ошибку. Любые советы приветствуются.

См. Код ниже:

Sub Module_Test()
Dim oExcel As Object
Dim oWord_Doc as object
Dim wb_open as workbook
Set oExcel = New Excel.Application
str_Excel_Filename = "C:\Test\Excel_Template.xlsx"
Documents.Open ("C:\Test\Doc_to_process.docx")
Set oWord_Doc = activedocument
oExcel.Visible = True
oExcel.ScreenUpdating = True
oExcel.Workbooks.Open str_Excel_Filename
Set wb_open = activeworkbook
wb_open.ActiveSheet.range("a6").Select
' At this point Excel is visible.  But the Msgbox statement below is not visible except when one switches to Word using the task bar.  What statement do I put here to make Word visible?
Msgbox "Here is a message that should be visible when viewing the window containing the Doc_to_process.docx"
End Sub

1 Ответ

0 голосов
/ 31 октября 2018

Видимый на уровне приложений. Ваша переменная oExcel дает вам подсказку. У вас нет переменной с именем oWord.

Отредактировано, чтобы добавить следующий код

Option Explicit

Sub Module_Test()

Const MY_WB_PATH                As String = "C:\Test\Excel_Template.xlsx"
Const MY_DOC_PATH               As String = "C:\Test\Doc_to_process.docx"

Dim my_xl_app                   As Excel.Application
Dim my_doc                      As Word.Document
Dim my_wb                       As Excel.Workbook

    Set my_xl_app = New Excel.Application

    With my_xl_app
        .Visible = True
        .ScreenUpdating = True
        Set my_wb = .Workbooks.Open(MY_WB_PATH)

    End With

    my_wb.Activate
    my_wb.activeworksheet.Range("a6").Select

    ' At this point Excel is visible.  But the Msgbox statement
    ' below is not visible except when one switches to Word using
    ' the task bar.  What statement do I put here to make Word visible?
    Set my_doc = Documents.Open(MY_DOC_PATH)
    my_doc.Activate
    ' If required
    my_doc.Application.Visible = True

    MsgBox "Here is a message that should be visible when viewing the window containing the Doc_to_process.docx"
End Sub

Если вы новичок в VBA, всегда следует использовать следующее.

  1. В VBA IDE убедитесь, что каждый модуль начинается с 'Option clear'

  2. В VBA IDE убедитесь, что установлены все флажки в Tools.Option.Code Настройки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...