L oop через коллекцию таблиц в MS Word из MS Excel - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь внести некоторые изменения во все таблицы в документе MS Word, и у меня есть этот код:

Dim oTbl As Table

For Each oTbl In ActiveDocument.Tables
  With oTbl.Range.Next
    If .Information(wdWithInTable) = False Then .Delete
  End With
Next

Обычно это работает, когда я запускаю его из MS Word, но когда я пытаюсь запустить его из MS Excel я сталкиваюсь с

Ошибка несоответствия типа 13.

Кто-нибудь знает почему? А как сделать эту работу из Excel?

Спасибо!

1 Ответ

2 голосов
/ 06 апреля 2020

Вам нужно сослаться на Word из Excel. Вот один из подходов.

Option Explicit

Public Sub ExampleDelete()
    const wdWithInTable as long = 12
    Dim wrd As Object, doc As Object, tbl As Object
    Set wrd = CreateObject("Word.Application")

    Set doc = wrd.documents.Open("C:\Users\Ryan\desktop\Example.docx") 'Update your path here

    For Each tbl In doc.Tables
        With tbl.Range.Next
            If .Information(wdWithInTable) = False Then .Delete
        End With
    Next

    'Do other actions here...maybe save?
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...