Как распознать внедренный документ Word как «открытый»? - PullRequest
0 голосов
/ 21 июня 2019

Мне нужно экспортировать содержимое ячеек Excel в определенные закладки в документе Word, встроенном в тот же файл Excel.

Sub Provareport()   
    Dim ws As Worksheet
    Dim wd As Object
    Dim oEmbFile As Object
    Set ws = ThisWorkbook.Worksheets("Modello")
    Set wd = CreateObject("Word.application")

    'opening the embedded document    
    Application.DisplayAlerts = False
    Set oEmbFile = ThisWorkbook.Sheets("BANCHE").OLEObjects("Reword")
    oEmbFile.Verb Verb:=xlPrimary
    Set oEmbFile = Nothing
    Application.DisplayAlerts = True

    With wd.ActiveDocument
        .Bookmarks("Denominazione").Range.Text = ws.Range("G13").Value
        .Bookmarks("SNDG").Range.Text = ws.Range("F13").Value
        .Bookmarks("Organo_deliberante").Range.Text = ws.Range("I13").Value
        .Bookmarks("Headline").Range.Text = ws.Range("B80").Value
        .Bookmarks("Attivo").Range.Text = ws.Range("B81").Value
        .Bookmarks("Passivo").Range.Text = ws.Range("B90").Value
        .Bookmarks("LCRNSFR").Range.Text = ws.Range("B93").Value
        .Bookmarks("Patrimonializzazione").Range.Text = ws.Range("B94").Value
        .Bookmarks("Patrimonio2").Range.Text = ws.Range("B95").Value
        .Bookmarks("Conto_economico").Range.Text = ws.Range("B98").Value
        .Bookmarks("Conto_economico2").Range.Text = ws.Range("B100").Value
        .Bookmarks("Conto_economico3").Range.Text = ws.Range("B105").Value
        .Bookmarks("Conto_economico4").Range.Text = ws.Range("B108").Value
    End With

    Set doc = Nothing
    Set wd = Nothing

End Sub

Код останавливается на строке:

With wd.ActiveDocument

Появляется следующая ошибка:

"ошибка времени выполнения" 4248 "
Эта команда недоступна, так как ни один документ не открыт "

Однако документ Word открыт.

1 Ответ

0 голосов
/ 21 июня 2019

как правильно указал Гарет, вы работаете с разными экземплярами слова. Предполагается, что ссылка на библиотеку объектов Microsoft Word уже добавлена.

Тогда попробуйте в разделе объявить

Dim wd As Word.Document

и, наконец,

    Set oEmbFile = ThisWorkbook.Sheets("BANCHE").OLEObjects("Reword")
    oEmbFile.Verb Verb:=xlPrimary
    Set wd = oEmbFile.Object

    With wd
    '
    '
    '
    '

    End With

Код выше работает для редактирования в местоположении и кажется достаточным для текущей цели. Однако, чтобы открыть окно с полным словом, лентой и т. Д., Попробуйте

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