Vba word таблица range

Создание таблиц в документе Word из кода VBA Excel. Метод Tables.Add, его синтаксис и параметры. Объекты Table, Column, Row, Cell. Границы таблиц и стили.

Работа с Word из кода VBA Excel
Часть 4. Создание таблиц в документе Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5] [Часть 6]

Таблицы в VBA Word принадлежат коллекции Tables, которая предусмотрена для объектов Document, Selection и Range. Новая таблица создается с помощью метода Tables.Add.

Синтаксис метода Tables.Add

Expression.Add (Range, Rows, Columns, DefaultTableBehavior, AutoFitBehavior)

Expression – выражение, возвращающее коллекцию Tables.

Параметры метода Tables.Add

  • Range – диапазон, в котором будет создана таблица (обязательный параметр).
  • Rows – количество строк в создаваемой таблице (обязательный параметр).
  • Columns – количество столбцов в создаваемой таблице (обязательный параметр).
  • DefaultTableBehavior – включает и отключает автоподбор ширины ячеек в соответствии с их содержимым (необязательный параметр).
  • AutoFitBehavior – определяет правила автоподбора размера таблицы в документе Word (необязательный параметр).

Создание таблицы в документе

Создание таблицы из 3 строк и 4 столбцов в документе myDocument без содержимого и присвоение ссылки на нее переменной myTable:

With myDocument

Set myTable = .Tables.Add(.Range(Start:=0, End:=0), 3, 4)

End With

Создание таблицы из 5 строк и 4 столбцов в документе Word с содержимым:

With myDocument

myInt = .Range.Characters.Count 1

Set myTable = .Tables.Add(.Range(Start:=myInt, End:=myInt), 5, 4)

End With

Для указания точки вставки таблицы присваиваем числовой переменной количество символов в документе минус один. Вычитаем единицу, чтобы исключить из подсчета последний знак завершения абзаца (¶), так как точка вставки не может располагаться за ним.

Последний знак завершения абзаца всегда присутствует в документе Word, в том числе и в новом без содержимого, поэтому такой код подойдет и для пустого документа.

При создании, каждой новой таблице в документе присваивается индекс, по которому к ней можно обращаться:

myDocument.Tables(индекс)

Нумерация индексов начинается с единицы.

Отображение границ таблицы

Новая таблица в документе Word из кода VBA Excel создается без границ. Отобразить их можно несколькими способами:

Вариант 1
Присвоение таблице стиля, отображающего все границы:

myTable.Style = «Сетка таблицы»

Вариант 2
Отображение внешних и внутренних границ в таблице:

With myTable

.Borders.OutsideLineStyle = wdLineStyleSingle

.Borders.InsideLineStyle = wdLineStyleSingle

End With

Вариант 3
Отображение всех границ в таблице по отдельности:

With myTable

.Borders(wdBorderHorizontal) = True

.Borders(wdBorderVertical) = True

.Borders(wdBorderTop) = True

.Borders(wdBorderLeft) = True

.Borders(wdBorderRight) = True

.Borders(wdBorderBottom) = True

End With

Присвоение таблицам стилей

Вариант 1

myTable.Style = «Таблица простая 5»

Чтобы узнать название нужного стиля, в списке стилей конструктора таблиц наведите на него указатель мыши. Название отобразится в подсказке. Кроме того, можно записать макрос с присвоением таблице стиля и взять название из него.

Вариант 2

myTable.AutoFormat wdTableFormatClassic1

Выбирайте нужную константу с помощью листа подсказок свойств и методов – Auto List Members.

Обращение к ячейкам таблицы

Обращение к ячейкам второй таблицы myTable2 в документе myDocument по индексам строк и столбцов:

myTable2.Cell(nRow, nColumn)

myDocument.Tables(2).Cell(nRow, nColumn)

  • nRow – номер строки;
  • nColumn – номер столбца.

Обращение к ячейкам таблицы myTable в документе Word с помощью свойства Cell объектов Row и Column и запись в них текста:

myTable.Rows(2).Cells(2).Range = _

«Содержимое ячейки во 2 строке 2 столбца»

myTable.Columns(3).Cells(1).Range = _

«Содержимое ячейки в 1 строке 3 столбца»

В таблице myTable должно быть как минимум 2 строки и 3 столбца.

Примеры создания таблиц Word

Пример 1
Создание таблицы в новом документе Word со сплошными наружными границами и пунктирными внутри:

Sub Primer1()

Dim myWord As New Word.Application, _

myDocument As Word.Document, myTable As Word.Table

  Set myDocument = myWord.Documents.Add

  myWord.Visible = True

With myDocument

  Set myTable = .Tables.Add(.Range(0, 0), 5, 4)

End With

With myTable

  .Borders.OutsideLineStyle = wdLineStyleSingle

  .Borders.InsideLineStyle = wdLineStyleDot

End With

End Sub

В выражении myDocument.Range(Start:=0, End:=0) ключевые слова Start и End можно не указывать – myDocument.Range(0, 0).

Пример 2
Создание таблицы под ранее вставленным заголовком, заполнение ячеек таблицы и применение автосуммы:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

Sub Primer2()

On Error GoTo Instr

Dim myWord As New Word.Application, _

myDocument As Word.Document, _

myTable As Word.Table, myInt As Integer

  Set myDocument = myWord.Documents.Add

  myWord.Visible = True

With myDocument

‘Вставляем заголовок таблицы

  .Range.InsertAfter «Продажи фруктов в 2019 году» & vbCr

  myInt = .Range.Characters.Count 1

‘Присваиваем заголовку стиль

  .Range(0, myInt).Style = «Заголовок 1»

‘Создаем таблицу

  Set myTable = .Tables.Add(.Range(myInt, myInt), 4, 4)

End With

With myTable

‘Отображаем сетку таблицы

  .Borders.OutsideLineStyle = wdLineStyleSingle

  .Borders.InsideLineStyle = wdLineStyleSingle

‘Форматируем первую и четвертую строки

  .Rows(1).Range.Bold = True

  .Rows(4).Range.Bold = True

‘Заполняем первый столбец

  .Columns(1).Cells(1).Range = «Наименование»

  .Columns(1).Cells(2).Range = «1 квартал»

  .Columns(1).Cells(3).Range = «2 квартал»

  .Columns(1).Cells(4).Range = «Итого»

‘Заполняем второй столбец

  .Columns(2).Cells(1).Range = «Бананы»

  .Columns(2).Cells(2).Range = «550»

  .Columns(2).Cells(3).Range = «490»

  .Columns(2).Cells(4).AutoSum

‘Заполняем третий столбец

  .Columns(3).Cells(1).Range = «Лимоны»

  .Columns(3).Cells(2).Range = «280»

  .Columns(3).Cells(3).Range = «310»

  .Columns(3).Cells(4).AutoSum

‘Заполняем четвертый столбец

  .Columns(4).Cells(1).Range = «Яблоки»

  .Columns(4).Cells(2).Range = «630»

  .Columns(4).Cells(3).Range = «620»

  .Columns(4).Cells(4).AutoSum

End With

‘Освобождаем переменные

Set myDocument = Nothing

Set myWord = Nothing

‘Завершаем процедуру

Exit Sub

‘Обработка ошибок

Instr:

If Err.Description <> «» Then

  MsgBox «Произошла ошибка: « & Err.Description

End If

If Not myWord Is Nothing Then

  myWord.Quit

  Set myDocument = Nothing

  Set myWord = Nothing

End If

End Sub

Метод AutoSum суммирует значения в ячейках одного столбца над ячейкой с суммой. При использовании его для сложения значений ячеек в одной строке, результат может быть непредсказуемым.

Чтобы просуммировать значения в строке слева от ячейки с суммой, используйте метод Formula объекта Cell:

myTable.Cell(2, 4).Formula («=SUM(LEFT)»)

Другие значения метода Formula, применяемые для суммирования значений ячеек:

  • «=SUM(ABOVE)» – сумма значений над ячейкой (аналог метода AutoSum);
  • «=SUM(BELOW)» – сумма значений под ячейкой;
  • «=SUM(RIGHT)» – сумма значений справа от ячейки.


I’m trying to learn how to handle Range objects in Word VBA with regards to MS Word tables.

Using the Range object help, it would seem I can create a range of cells as long as the cells are contiguous, however I cannot seem to get the syntax for specifying the Start and End points of the range using cells.

For example:

Set rngCells = myTable.Range(Start:=<cell>, End:=<cell>)

I’m not sure what to put in for to indicate the cell to start or the cell to end with. Can someone give me a clue? :)

Edit: I’ve already created the table from scratch — I’m trying to use a range of cells for some of the rows in the middle to apply formatting to them. In particular, I’m trying to see if this can be done without using Selection.

Martijn Pieters's user avatar

asked Sep 25, 2009 at 17:14

romandas's user avatar

2

I found the answer I was looking for:

Set myCells = ActiveDocument.Range(Start:=ActiveDocument.Tables(1).Cell(1, 1).Range.Start, _
             End:=ActiveDocument.Tables(1).Cell(1, 1).Range.End)

I did not realize the Range object was from the Document object, not the Table object.

MikeD's user avatar

MikeD

8,8612 gold badges28 silver badges50 bronze badges

answered Sep 29, 2009 at 19:49

romandas's user avatar

romandasromandas

4,0467 gold badges29 silver badges33 bronze badges

Содержание

  • 1 Adding a Column to a Table
  • 2 Adding a Row to a Table
  • 3 Converting a Table or Rows to Text
  • 4 Converts the current selection to a five-column table, separating the information at commas.
  • 5 Declare the variable tempTable and then select the first table in the document named Log.doc and assign its Range object to tempTable
  • 6 Deletes the first cell in the first row of the first table in the active document and shifts the other cells in the first row to the left to fill the gap:
  • 7 delete the column in which the range testRange ends if the range is more than one column wide:
  • 8 Deleting a Column from a Table
  • 9 Deleting a Row from a Table
  • 10 Deleting Cells
  • 11 Entering Text in a Cell
  • 12 Finding Out Where the Selection Is in the Table
  • 13 Inserting a Cell
  • 14 inserts a new, blank, non-autofitting table containing 10 rows and 5 columns at the current position of the insertion point in the active document:
  • 15 Making Sure the Selection Is within a Table
  • 16 Returning the Text within a Cell
  • 17 Selecting a Column
  • 18 Selecting a Range of Cells
  • 19 Selecting a Row
  • 20 Selecting a Table in the active document:
  • 21 Selects the first table in the current selection:
  • 22 Set the Height property of the row or rows in question by specifying the height in points
  • 23 Setting the Height of One or More Rows
  • 24 Setting the Width of a Column
  • 25 Strip off the last two characters when assigning the Text property to a string:
  • 26 The SetWidth method sets the width of one or more columns and specify how the other columns in the table should change as a result: expression.SetWidth ColumnWidth, RulerStyle
  • 27 The Width property lets you change the width of a column without worrying about the effect on the other columns. Specify the width you want in points-for example:
  • 28 Use the ConvertToText method with a Table object, a Row object, or a Rows collection: converts only the first row of the selected table to tab-delimited text
  • 29 wdDeleteCellsEntireRow deletes the whole row.
  • 30 wdDeleteCellsShiftLeft moves cells across to the left to fill the gap.
  • 31 wdDeleteCellsShiftUp moves cells up to fill the gap.
  • 32 wdEndOfRangeColumnNumber returns the number of the column in which the end of the selection or range falls.

Adding a Column to a Table

   <source lang="vb">

«The following statements use the Count property to check the number of columns in the first table in the active document and
Sub add()

   With ActiveDocument.Tables(1)
       .Select
       If .Columns.Count < 5 Then
           Do Until .Columns.Count = 5
               .Columns.add BeforeColumn:=.Columns(.Columns.Count)
           Loop
       End If
   End With

End Sub

</source>
   
  

Adding a Row to a Table

   <source lang="vb">

Sub addRow()

   Documents("yourDoc.doc").Tables(1).Rows.Add BeforeRow:=1

End Sub

</source>
   
  

Converting a Table or Rows to Text

   <source lang="vb">

Sub sep()

   Selection.Tables(1).ConvertToText Separator:="*"

End Sub

</source>
   
  

Converts the current selection to a five-column table, separating the information at commas.

   <source lang="vb">

Sub sele()

   Set myTable = Selection.ConvertToTable(wdSeparateByCommas, _
       Selection.Paragraphs.Count, 5, , , , , , , , , , , True, _
       wdAutoFitContent, wdWord9TableBehavior)

End Sub

</source>
   
  

Declare the variable tempTable and then select the first table in the document named Log.doc and assign its Range object to tempTable

   <source lang="vb">

Sub tableSel()

   Dim tempTable
   Documents("Log.doc").Tables(1).Select
   Set tempTable = Selection.Tables(1).Range
   tempRange.Tables(2).Select

End Sub

</source>
   
  

Deletes the first cell in the first row of the first table in the active document and shifts the other cells in the first row to the left to fill the gap:

   <source lang="vb">

Sub del()

   ActiveDocument.Tables(1).Rows(1).Cells(1).Delete _
       ShiftCells:=wdDeleteCellsShiftLeft

End Sub

</source>
   
  

delete the column in which the range testRange ends if the range is more than one column wide:

   <source lang="vb">


    With testRange
        If .Information(wdStartOfRangeColumnNumber) <> _
            .Information(wdEndOfRangeColumnNumber) Then _
            .Tables(1).Columns(.Information _
            (wdEndOfRangeColumnNumber)).Delete
    End With
</source>
   
  

Deleting a Column from a Table

   <source lang="vb">

Sub del()

   ActiveDocument.Tables(1).Columns(1).Delete

End Sub

</source>
   
  

Deleting a Row from a Table

   <source lang="vb">

Sub del()

   Documents("yourDoc.doc").Tables(3).Rows(1).Delete

End Sub

</source>
   
  

Deleting Cells

   <source lang="vb">

«wdDeleteCellsEntireColumn deletes the whole column the specified cell or cells is in.
Sub del()

   ActiveDocument.Tables(1).Rows(1).Cells(1).Delete _
       ShiftCells:=wdDeleteCellsEntireColumn

End Sub

</source>
   
  

Entering Text in a Cell

   <source lang="vb">

Sub text()

   With Selection.Tables(1).Rows(1)
       .Cells(1).Range.text = "Sample text in first cell."
       .Cells(2).Range.text = "Sample text in second cell."
       .Cells(3).Range.text = "Sample text in third cell."
   End With

End Sub

</source>
   
  

Finding Out Where the Selection Is in the Table

   <source lang="vb">

Sub sel()

   If Selection.Information(wdAtEndOfRowMarker) = True Then _
       Selection.MoveLeft Unit:=wdCharacter, Count:=1

End Sub

</source>
   
  

Inserting a Cell

   <source lang="vb">

Sub insert()

   Documents("Tables.doc").Tables(1).Rows(1).Cells.Add _
       BeforeCell:=Documents("Tables.doc").Tables(1).Rows(1).Cells(2)

End Sub

</source>
   
  

inserts a new, blank, non-autofitting table containing 10 rows and 5 columns at the current position of the insertion point in the active document:

   <source lang="vb">

Sub table()

   ActiveDocument.Tables.add Range:=Selection.Range, NumRows:=10, _
       NumColumns:=5, DefaultTableBehavior:=wdWord8TableBehavior

End Sub

</source>
   
  

Making Sure the Selection Is within a Table

   <source lang="vb">

Sub withTable()

   If Selection.Information(wdWithInTable) = True Then
       "take actions here
   End If

End Sub

</source>
   
  

Returning the Text within a Cell

   <source lang="vb">

Sub text()

   Dim strCellText As String
   strCellText = ActiveDocument.Tables(1).Rows(2).Cells(1).Range.Text
   Debug.Print strCellText

End Sub

</source>
   
  

Selecting a Column

   <source lang="vb">

«To select a column, use the Select method with the appropriate Column object.
Sub sel()

   Documents("yourDoc.doc").Tables(3).Columns(2).Select

End Sub

</source>
   
  

Selecting a Range of Cells

   <source lang="vb">

«To select a range of cells within a table, declare a Range variable, assign to it the cells you want to select, and then select the range
Sub cellSel()

   Dim myCells As Range
   With ActiveDocument
       Set myCells = .Range(Start:=.Tables(1).Cell(1, 1).Range.Start, _
           End:=.Tables(1).Cell(1, 4).Range.End)
       myCells.Select
   End With

End Sub

</source>
   
  

Selecting a Row

   <source lang="vb">

Sub sel()

   Documents("Tables.doc").Tables(.Tables.Count).Rows.Last.Select

End Sub

</source>
   
  

Selecting a Table in the active document:

   <source lang="vb">

Sub table1()

   ActiveDocument.Tables(1).Select

End Sub

</source>
   
  

Selects the first table in the current selection:

   <source lang="vb">

Sub tableSel1()

   Selection.Tables(1).Select

End Sub

</source>
   
  

Set the Height property of the row or rows in question by specifying the height in points

   <source lang="vb">

Sub height()

   Documents("Tables.doc").Tables(3).Rows(3).Height = 33

End Sub

</source>
   
  

Setting the Height of One or More Rows

   <source lang="vb">

Sub rowHeight()

   ActiveDocument.Tables(4).Rows(2).HeightRule = wdRowHeightAuto

End Sub

</source>
   
  

Setting the Width of a Column

   <source lang="vb">

Sub auto()

   ActiveDocument.Tables(1).Columns.AutoFit

End Sub

</source>
   
  

Strip off the last two characters when assigning the Text property to a string:

   <source lang="vb">

Sub strip()

   Dim strCellText As String
   
   strCellText = ActiveDocument.Tables(3).Rows(2).Cells(1).Range.Text
   Debug.Print strCellText
   strCellText = Left(strCellText, Len(strCellText) - 2)
   Debug.Print strCellText

End Sub

</source>
   
  

The SetWidth method sets the width of one or more columns and specify how the other columns in the table should change as a result: expression.SetWidth ColumnWidth, RulerStyle

   <source lang="vb">

Sub ruler()

   ActiveDocument.Tables(1).Columns(2).SetWidth ColumnWidth:=50, _
       RulerStyle:=wdAdjustProportional

End Sub

</source>
   
  

The Width property lets you change the width of a column without worrying about the effect on the other columns. Specify the width you want in points-for example:

   <source lang="vb">

Sub width()

   ActiveDocument.Tables(11).Columns(44).Width = 100

End Sub

</source>
   
  

Use the ConvertToText method with a Table object, a Row object, or a Rows collection: converts only the first row of the selected table to tab-delimited text

   <source lang="vb">

Sub tab()

   Selection.Tables(1).Rows(1).ConvertToText Separator:=wdSeparateByTabs

End Sub

</source>
   
  

wdDeleteCellsEntireRow deletes the whole row.

   <source lang="vb">

Sub del()

   ActiveDocument.Tables(1).Rows(1).Cells(1).Delete _
       ShiftCells:=wdDeleteCellsEntireRow

End Sub

</source>
   
  

wdDeleteCellsShiftLeft moves cells across to the left to fill the gap.

   <source lang="vb">

Sub del()

   ActiveDocument.Tables(1).Rows(1).Cells(1).Delete _
       ShiftCells:=wdDeleteCellsShiftLeft

End Sub

</source>
   
  

wdDeleteCellsShiftUp moves cells up to fill the gap.

   <source lang="vb">

Sub del()

   ActiveDocument.Tables(1).Rows(1).Cells(1).Delete _
       ShiftCells:=wdDeleteCellsShiftUp

End Sub

</source>
   
  

wdEndOfRangeColumnNumber returns the number of the column in which the end of the selection or range falls.

   <source lang="vb">


    With testRange
        If .Information(wdStartOfRangeColumnNumber) <> _
            .Information(wdEndOfRangeColumnNumber) Then _
            .Tables(1).Columns(.Information _
            (wdEndOfRangeColumnNumber)).Delete
    End With
</source>

Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений [ 7 ]

1 07.02.2014 18:13:48

  • aap77
  • генерал-полковник
  • Неактивен
  • Зарегистрирован: 12.09.2011
  • Сообщений: 925
  • Поблагодарили: 243

Тема: Особенности таблицы Word и ее связь с кодом VBA

Здесь я рассказываю об особенностях таблицы Word, как объекта VBA.
1-я особенность: Многие пользователи часто сравнивают таблицу Word с  таблицей Excel. Отчасти это верно, и там, и там у них общие основные свойства. Общая схема обеих таблиц в порядке подчинения выглядит так:
Таблица —> Строка (Столбец) —> Ячейка
Дальше начинаются разногласия, в основном из-за разного свойства Range (Область) в объектных моделей программ.
1. В Excel в объект Range может входить набор ячеек, которые не соседствуют между собой, как по горизонтали, так и по вертикали. А в Word это непрерывный поток данных.
Например, условновно мы имеем таблицу, состоящую из 1 строки и 3 столбцов (A1, B1, C1), то при выделении ячеек A1 и C1, Excel включит в объект Range 2-е ячейки A1 и C1, а Word — только A1, т.к. между ними есть разрыв ячека B1.
2. В Excel и в Word есть понятие Cell (Ячейка) и Cells (Ячейки).
В Word Cell и Cells представляются одноименными классами с отдельными свойствами и методами, а в Excel они представлены объектом Range, что дает намного больше преймуществ.
3. Разница получения данных из ячеек.

  • В Excel мы обращаемся к одному свойству Value и получаем чистый результат. Например, если в ячейке стоит 2, то для дальнейшего использования мы имеем [переменную] = 2, как число, если ячейка имеет общий или числовой формат.

  • В Word таже ячейка (как и любая ячейка Word) представляет собой текстовую строку с двумя лишними знаками «¶» и «¤»

Пишите мне в эту тему с отдельными вопросами связанными с данной темой. Постепенно буду здесь расмещать более развернутые вопросы.

2 Ответ от Зульфия 14.12.2016 18:11:37

  • Зульфия
  • рядовой
  • Неактивен
  • Зарегистрирован: 14.12.2016
  • Сообщений: 2

Re: Особенности таблицы Word и ее связь с кодом VBA

Добрый день! Буквально два дня изучаю макросы и пытаюсь создать макрос для таблиц. Необходимо применить ко всем таблицам стиль, задать стиль текста, стиль шапки и копирование её на следующих страницах, задать стиль подписи к таблице. Последний пункт вызывает трудности, с остальными более-менее справилась.

3 Ответ от Зульфия 14.12.2016 19:12:10

  • Зульфия
  • рядовой
  • Неактивен
  • Зарегистрирован: 14.12.2016
  • Сообщений: 2

Re: Особенности таблицы Word и ее связь с кодом VBA

Зульфия пишет:

Добрый день! Буквально два дня изучаю макросы и пытаюсь создать макрос для таблиц. Необходимо применить ко всем таблицам стиль, задать стиль текста, стиль шапки и копирование её на следующих страницах, задать стиль подписи к таблице. Последний пункт вызывает трудности, с остальными более-менее справилась.

Уточнение, работа идет с Word.

4 Ответ от Boris_R 21.12.2016 09:44:08

  • Boris_R
  • полковник
  • Неактивен
  • Зарегистрирован: 07.08.2012
  • Сообщений: 234
  • Поблагодарили: 110

Re: Особенности таблицы Word и ее связь с кодом VBA

Зульфия пишет:

Зульфия пишет:

Необходимо применить ко всем таблицам стиль, задать стиль текста, стиль шапки и копирование её на следующих страницах, задать стиль подписи к таблице. Последний пункт вызывает трудности, с остальными более-менее справилась.

Уточнение, работа идет с Word.

По последнему пункту — смотрите в Справке свойства и методы объектов CaptionLabel и CaptionLabels.

5 Ответ от Fck_This 28.12.2016 16:33:24

  • Особенности таблицы Word и ее связь с кодом VBA
  • Fck_This
  • генерал-полковник
  • Неактивен
  • Откуда: Минск, Беларусь
  • Зарегистрирован: 13.07.2016
  • Сообщений: 648
  • Поблагодарили: 97

Re: Особенности таблицы Word и ее связь с кодом VBA

Буду признателен, если поделитесь своими знаниями в отношении объединённых ячеек таблицы по вертикали и горизонтали.

Спасибо можно перевести на WebMoney-кошелёк R378231864568 или на Яндекс-деньги 410015093172871

6 Ответ от aequit 02.03.2017 15:54:30

  • aequit
  • сержант
  • Неактивен
  • Зарегистрирован: 31.03.2015
  • Сообщений: 13

Re: Особенности таблицы Word и ее связь с кодом VBA

Здравствуйте!
Подскажите, можно ли занести значение в ячейку таблицы Word одной командой, вместо двух:

ActiveDocument.Tables(1).Cell(1, 2).Select
Selection.TypeText

7 Ответ от yshindin 02.03.2017 16:10:10

  • yshindin
  • генерал-полковник
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 12.05.2012
  • Сообщений: 447
  • Поблагодарили: 171
  • За сообщение: 1

Re: Особенности таблицы Word и ее связь с кодом VBA

aequit пишет:

Здравствуйте!
Подскажите, можно ли занести значение в ячейку таблицы Word одной командой, вместо двух:

ActiveDocument.Tables(1).Cell(1, 2).Select
Selection.TypeText

Попробуйте так:

 
ActiveDocument.Tables(1).Cell(1, 2).Range.Text = "123" ' или другое значение

Сообщений [ 7 ]

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Похожие темы

  • Связь таблицы excel и документа word
  • особенности форматирования в word 2003
  • Связь Word и excel
  • Разорвать связь Word-Excel
  • Связь документов Word и Excel
  • Связь таблиц екселя с таблицей Word
  • Помогите с кодом Макроса
  • Импорт переменной, связь Word и Excel с помощью макроса

Особенности таблицы Word и ее связь с кодом VBA

Любую работу можно сделать несколькими различными способами. В силах человека выбрать наиболее удобный для себя, оптимальный и рациональный. На портале о Microsoft Office Word вы узнаете про: как расставить нумерацию страниц в ворде с рамкой на 15.
Если говорить о работе с текстами: написании рефератов, дипломов, статей, редактировании различных документов и оформлении презентаций, то Microsoft Word дает массу возможностей для этого. Наш сайт о Microsoft Office Word даст ответ про: как поместить таблицу на одной странице.

Познакомиться с ними,  расширить свои познания о программе или поделиться секретами и хитростями с другими пользователями вы можете на форуме Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: сохранить документ автоматически.

Здесь собрана основная информация и ответы на наиболее популярные вопросы по работе с приложением. Например, о создании макросов, о колонтитулах, удалении лишних пробелов. На портале о Microsoft Office Word вы узнаете про: как бруть непечатаемые символы в word 2010.

В основных разделах можно обсудить настройки самого Ворда и способы работы с текстом в различных версиях программы. На портале о Microsoft Office Word вы узнаете про: изменить лист на альбомный ворд 2010.
Подфорум «Автоматизация» предлагает освоить технику создания макросов и задания шаблонов для различных операций и функций. На портале о Microsoft Office Word вы узнаете про: как расположить страницу альбомно.

Здесь же на форуме можно найти готовые решения, разнообразные шаблоны, макросы для редактирования таблиц, оглавлений и многое другое. На портале о Microsoft Office Word вы узнаете про: преобразование презентации в word.
Возможно и оставить заявку, описав свою проблему в соответствующем подразделе. Если у вас есть какие –то оригинальные идеи и решения – форум лучшее место поделиться ими с другими пользователями Ворда. Наш сайт о Microsoft Office Word даст ответ про: антоним к слову уважаемым.

Понравилась статья? Поделить с друзьями:
  • Vba word сумма прописью
  • Vba word структура документа
  • Vba word стиль текста
  • Vba word список папок
  • Vba word сохранить как pdf