Как скопировать и вставить уравнение Word (>= 2007) из ячейки таблицы с помощью Visual Basic для приложений

У меня есть таблица в Word 2010 с уравнениями во втором столбце. Я хочу скопировать каждое уравнение из ячеек и вставить его, например, в начале документа. Но это не сработало. Вот код:

Sub CopyEquation()
    Dim objEq As OMath

    Set Cols = ActiveDocument.Tables(1).Columns(2)


    For Each aCell In Cols.Cells
       objEq = aCell.Range.OMaths(1)  'Runtime error '91': Object variable or With block variable not set
    Next aCell

    'insert at start of document
    ActiveDocument.Range(0, 0).OMaths.Add objEq  'Runtime error '13': Type mismatch
End Sub

Ошибки упоминаются как комментарии. Для второго я использовал пример OMath, упомянутый в MSDN.

1 ответ

Теперь я нашел это. Это работает:

Sub CopyEquation()
    Dim objEq As OMath
    Dim objRange As Range

    ' Select first table, second column
    Set Cols = ActiveDocument.Tables(1).Columns(2)

    For Each aCell In Cols.Cells
       ' Copy in each cell the first math environment ...
       Set objEq = aCell.Range.OMaths(1)
       objEq.Range.Copy

       ' ... and paste it at the start of the document
       ActiveDocument.Range(0, 0).Paste
    Next aCell
End Sub
Другие вопросы по тегам