Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчанию
Модератор: Naeel Maqsudov
В Word-ом документе имеется таблица, для которой заданы левое и правое поля ячеек (Таблица-Свойства таблицы-Параметры-Поля ячеек по умолчанию).
Параметры отдельных ячеек таблицы отличаются от заданных. Необходимо значения полей всех ячеек таблицы установить равными значениям, принятым в таблице по умолчанию, что делается в Worde очень просто:
Таблица-Свойства таблицы-Ячейка – Параметры-Поля ячейки (включить «Как во всей таблице)).
Как это сделать с помощью макроса?
Спасибо
Параметры отдельных ячеек таблицы отличаются от заданных. Необходимо значения полей всех ячеек таблицы установить равными значениям, принятым в таблице по умолчанию, что делается в Worde очень просто:
Таблица-Свойства таблицы-Ячейка – Параметры-Поля ячейки (включить «Как во всей таблице)).
Как это сделать с помощью макроса?
Спасибо
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
anval
я не нашёл, как добраться с помощью VBA к
Свойства таблицы - Ячейка - Параметры.
Но сбросить можно следующим образом:
После чего можно установить нужные поля для всей таблицы.
я не нашёл, как добраться с помощью VBA к
Свойства таблицы - Ячейка - Параметры.
Но сбросить можно следующим образом:
Код: Выделить всё
Sub m_1()
Selection.Tables(1).Style = "Сетка таблицы"
End Sub
Busine2009, спасибо .
Это не совсем то, что хотелось бы (т.к. сбрасываются все параметры, установленные в некоторых ячейках специальным образом), поэтому приходится восстанавливать и их (выравнивание в ячейках, вид границы и т.д.).
Поэтому, если появятся еще какие-то предложения, буду признательна.
Попутный вопрос - как выделить несколько строк таблицы, зная номера строк?
Это не совсем то, что хотелось бы (т.к. сбрасываются все параметры, установленные в некоторых ячейках специальным образом), поэтому приходится восстанавливать и их (выравнивание в ячейках, вид границы и т.д.).
Поэтому, если появятся еще какие-то предложения, буду признательна.
Попутный вопрос - как выделить несколько строк таблицы, зная номера строк?
-
- Сообщения: 14
- Зарегистрирован: 23 сен 2010, 11:13
anval
вот так можно управлять полями ячеек, но как поставить галочку "Поля ячеек "как во всей таблице" - не знаю.
Вот так можно выделять строки в таблице:
вот так можно управлять полями ячеек, но как поставить галочку "Поля ячеек "как во всей таблице" - не знаю.
Код: Выделить всё
Sub Макрос1()
Dim oCell As Cell
For Each oCell In Selection.Tables(1).Range.Cells
oCell.TopPadding = CentimetersToPoints(0)
oCell.BottomPadding = CentimetersToPoints(0)
oCell.LeftPadding = CentimetersToPoints(0.19)
oCell.RightPadding = CentimetersToPoints(0.19)
Next
End Sub
Код: Выделить всё
Sub Макрос2()
Selection.Tables(1).Rows(1).Select
End Sub
Terminators - спасибо.
Способом перебора в цикле я пробовала, но т.к таблица большая (1000 строк, 10 колонок - и это не предел), то длится такая процедура очень долго. Поэтому воспользовалась пока рекомендацией Busine2009, дальше устанавливаю значения полей как параметры таблицы (Selection.Tables(1).LeftPadding и т.д.) - это всего лишь по одному значению для каждого поля, а дальше нужно исправлять то, что отличается от стандарта, тут и спотыкаюсь - как это записать.
Может, кто-нибудь все-таки придумает, как запрограммировать действия, которые будут соответствовать установке галочек "Поля ячеек "как во всей таблице" и "Параметры" - "переносить текст" ( "Таблица-Свойства таблицы-Ячейка – Параметры").
Код :
Sub Макрос2()
Selection.Tables(1).Rows(1).Select
End Sub
Мой вопрос был:
"как выделить несколько строк таблицы, зная номера строк"
Выделение нужно не одной строки, а нескольких.
И еще вопрос - как объявить заголовок таблицы - пусть это будут первые ее 3 строки.
Способом перебора в цикле я пробовала, но т.к таблица большая (1000 строк, 10 колонок - и это не предел), то длится такая процедура очень долго. Поэтому воспользовалась пока рекомендацией Busine2009, дальше устанавливаю значения полей как параметры таблицы (Selection.Tables(1).LeftPadding и т.д.) - это всего лишь по одному значению для каждого поля, а дальше нужно исправлять то, что отличается от стандарта, тут и спотыкаюсь - как это записать.
Может, кто-нибудь все-таки придумает, как запрограммировать действия, которые будут соответствовать установке галочек "Поля ячеек "как во всей таблице" и "Параметры" - "переносить текст" ( "Таблица-Свойства таблицы-Ячейка – Параметры").
Код :
Sub Макрос2()
Selection.Tables(1).Rows(1).Select
End Sub
Мой вопрос был:
"как выделить несколько строк таблицы, зная номера строк"
Выделение нужно не одной строки, а нескольких.
И еще вопрос - как объявить заголовок таблицы - пусть это будут первые ее 3 строки.
-
- Сообщения: 14
- Зарегистрирован: 23 сен 2010, 11:13
Запишите макрос с помощью макрорекордера и будет код."Параметры" - "переносить текст" ( "Таблица-Свойства таблицы-Ячейка – Параметры"
с помощью VBA можно выделить одновременно только смежные элементы. Поэтому выделять не надо, а надо делать действия над объектами.как выделить несколько строк таблицы, зная номера строк
Заголовки таблицы:
Код: Выделить всё
Sub Макрос3()
Selection.Tables(1).Rows(1).HeadingFormat = True
Selection.Tables(1).Rows(2).HeadingFormat = True
Selection.Tables(1).Rows(3).HeadingFormat = True
End Sub
Terminators, я с макрорекодера и начинала - получила следующий код
Sub УстановитьПараметрыЯчеек()
Selection.Tables(1).Select
With Selection.Cells(1)
.WordWrap = True
.FitText = False
End With
End Sub
Действия были следующие (запись макроса начала, стоя в произвольной ячейке таблицы)
Таблица-Выделить таблицу
Таблица-Свойства таблицы-Ячейка-Включаю "Поля ячейки- как во всей таблице" и "переносить текст"
Запускаю макрос , результат работы:
установлен режим переноса в первой ячейке
поля везде остаются прежними, что и соответствует тексту макроса.
С заголовком получилось, спасибо.
Terminators, не поняла - так можно ли в Worde выделить смежные строки таблицы? Мне и нужны смежные .
Sub УстановитьПараметрыЯчеек()
Selection.Tables(1).Select
With Selection.Cells(1)
.WordWrap = True
.FitText = False
End With
End Sub
Действия были следующие (запись макроса начала, стоя в произвольной ячейке таблицы)
Таблица-Выделить таблицу
Таблица-Свойства таблицы-Ячейка-Включаю "Поля ячейки- как во всей таблице" и "переносить текст"
Запускаю макрос , результат работы:
установлен режим переноса в первой ячейке
поля везде остаются прежними, что и соответствует тексту макроса.
С заголовком получилось, спасибо.
Terminators, не поняла - так можно ли в Worde выделить смежные строки таблицы? Мне и нужны смежные .
-
- Сообщения: 14
- Зарегистрирован: 23 сен 2010, 11:13
anval
да, вспомнил про то, что макрос применяется только к одной ячейке.
А что тебе выделить надо конретно?
Пока приходит в голову только использование Selection + Extend: выделяешь одну строку, а затем двигаешься с Extendом.
да, вспомнил про то, что макрос применяется только к одной ячейке.
А что тебе выделить надо конретно?
Пока приходит в голову только использование Selection + Extend: выделяешь одну строку, а затем двигаешься с Extendом.
Terminators - нужно выделить несколько конкретных строк таблицы (попробую с Extendом)
И еще впрос.
В нижнем колонтитуле находится таблица. Как записать в ее ячейку информацию?
И еще впрос.
В нижнем колонтитуле находится таблица. Как записать в ее ячейку информацию?
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
anval
Код: Выделить всё
Sub m_1()
Selection.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).Cell(1, 1).Range.Text = "Текст"
End Sub