Для двух использований .cell (2,2) необходимы два разных аппроксайта.
Чтобы получить текст из ячейки, необходимо изменить первую строку следующим образом:
.Document.body.InnerHTML = ActiveDocument.Tables(1).Cell(2, 2).range.text
Во втором случае ваша терминология неверна.Он должен читать
ActiveDocument.Tables(1).Cell(2, 2).range.paste
Вы можете получить помощь по отдельным ключевым словам / свойствам довольно легко.В VBA IDE просто наведите курсор на ключевое слово / свойство и нажмите F1.Вы попадете на страницу справки MS по ключевому слову / свойству.Иногда у вас будет дополнительный шаг выбора, когда существует более одной альтернативы.
Также следует помнить, что свойство .cell (строка, столбец) подвержено сбоям, так как оно полагается на отсутствие объединенных ячеек.в таблице.Более надежный подход заключается в использовании свойства .cells (index).
Может случиться так, что вы можете использовать альтернативный метод appraoch и использовать поиск по шаблону, чтобы найти тег, а затем заменить нужную часть при примененииподходящий связанный стиль (вы не сможете использовать стили абзаца, потому что вы будете пытаться отформатировать только часть абзаца, а стили символов, похоже, не работают с поиском / заменой).
Примертакой код, который удаляет теги HTML и форматирует оставшийся текст ниже
Option Explicit
Sub replaceHTML_WithFormattedText()
' a comma seperated list of HTML tags
Const myTagsList As String = "strong,small,b,i,em"
' a list of linked styles chosen or designed for each tag
' Paragraph styles cannot be used as we are replacing only part of a paragraph
' Character styles just don't seem to work
' The linked styles below were just chosen from the default Word styles as an example
Const myStylesList As String = "Heading 1,Heading 9,Comment Subject,Intense Quote,Message Header"
' <, > and / are special characters therefore need escaping with '\' to get the actual character
Const myFindTag As String = "(\<Tag\>)(*)(\<\/Tag\>)"
Const myReplaceStr As String = "\2"
Dim myTagsHTML() As String
Dim myTagsStyles() As String
Dim myIndex As Long
myTagsHTML = Split(myTagsList, ",")
myTagsStyles = Split(myStylesList, ",")
If UBound(myTagsHTML) <> UBound(myTagsStyles) Then
MsgBox "Different number of tags and Styles", vbOKOnly
Exit Sub
End If
For myIndex = 0 To UBound(myTagsHTML)
With ActiveDocument.StoryRanges(wdMainTextStory).Find
.ClearFormatting
.Format = True
.Text = Replace(myFindTag, "Tag", Trim(myTagsHTML(myIndex)))
.MatchWildcards = True
.Replacement.Text = myReplaceStr
.Replacement.Style = myTagsStyles(myIndex)
.Execute Replace:=wdReplaceAll
End With
Next
End Sub