Использовать макрос-рекордер.Вызовите рекордер, затем выполните шаги, чтобы скопировать и вставить таблицу, затем вы можете отредактировать ее, чтобы увидеть действительные инструкции макроса.Но обратите внимание, что средство записи макросов не сохраняет содержимое буфера обмена, поэтому разметка, которая создает таблицу, не будет сохранена вместе с макросом.Чтобы это работало, таблица должна существовать до запуска макроса.
Вот один из возможных методов:
Перед началом записи должны быть выполнены следующие условия:
- Ваша таблица должна находиться в начале документа после знака абзаца
- Ваш курсор должен находиться там, где вы хотите разместить новую таблицу
Затем включите запись и завершитеследующие шаги:
- Введите
_table_goes_here_
, где курсор находится - Нажмите Ctrl + Home, чтобы перейти к началу документа (непосредственно перед основной таблицей
- Удерживая нажатой
Shift
и нажимая клавишу down arrow
достаточное количество раз, пока не будет выбрана вся таблица, - Нажмите Ctrl + C, чтобы скопировать таблицу
- Нажмите Ctrl + F, чтобы вызвать Findдиалоговое окно
- Введите текст местозаполнителя в поле «Найти» (
_table_goes_here_
) и нажмите «Найти далее» - Когда текст заполнителя будет найден и выбран, нажмите клавишу «Esc», чтобы закрыть диалоговое окно поиска * 1032.*
- Нажмите Ctrl + V, чтобыскопируйте скопированную таблицу, которая заменит ваш текст-заполнитель
- Завершите запись макроса.
Правка - Второй подход
Другой подход - начать запись макроса изатем создайте таблицу с нуля, так что вам не понадобится уже существующая таблица для работы макроса.Когда вы сформировали и отформатировали запись конца таблицы и выполнили все необходимые шаги, чтобы разместить точно такую же таблицу в любом месте.
Я только что протестировал второй подход, и он прекрасно работает.Вот код, сгенерированный регистратором для моего маленького теста:
Sub MakeTable()
'
' MakeTable Macro
' Macro recorded þ16þ/08þ/2010 by Majid Fouladpour
'
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _
4, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed
With Selection.Tables(1)
If .Style <> "Table Grid" Then
.Style = "Table Grid"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = True
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = True
End With
With Selection.Tables(1)
.Style = "Table Columns 4"
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = True
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = True
End With
Selection.TypeText Text:="Col one"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="Col two"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="Col three"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="Col four"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=3
Selection.TypeText Text:="Item 1"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="Item 2"
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.TypeText Text:="Item 3"
End Sub