Таблицы Word
Таблицы Word
Таблицы: Добавление колонок слева и справа в таблицы со слитыми ячейками
Рубрика: Макросы | Таблицы WordМетки: макросы | таблицы
Дата: 14/04/2011 09:01:53
VBA-addict, активный участник нашего форума, предложил свое решение по таблицам. Публикую это решение также и здесь. Вопросы можете задавать автору заметки как в комментариях, так и на форуме.
При попытке добавления в таблицу со слитыми ячейками колонок слева и справа часто возникают проблемы связанные с тем, что ячейкам колонки присваивается ширина соседних ячеек. Соответственно, если ширина у них разная - таблица разлетается в столбчатую диаграмму.
Не найдя полностью готового решения в сети скомпилировал свое. Работает на текущей таблице под курсором.
Для добавления слева и справа код несколько отличается, т.к. при добавлении слева всегда ссылка идет на первую ячейку строки, которая есть всегда, а справа - на последнюю, номер которой может отличаться из-за слитых ячеек.
Sub AddCol2LeftMergedCTable()
If Selection.Range.Information(wdWithInTable) = False Then Exit Sub
With Selection.Tables(1)
TblRowsNumber = .Rows.Count
NewColumnWidth = InputBox$("Enter the width in millimeters for the Column to add", _
"Add column to the LEFT for a table with merged cells", _
NewColumnWidth)
If Val(NewColumnWidth) = 0 Then Exit Sub
For i = 1 To TblRowsNumber
.Range.Cells.Add BeforeCell:=.Cell(i, 1)
.Cell(i, 1).Width = MillimetersToPoints(NewColumnWidth)
Next
End With
Selection.MoveDown
End Sub
Sub AddCol2RightMergedCTable()
If Selection.Range.Information(wdWithInTable) = False Then Exit Sub
With Selection.Tables(1)
TblRowsNumber = .Rows.Count
NewColumnWidth = InputBox$("Enter the Width in millimeters" & vbCrLf & "for the Column to add", _
"Add column to the RIGHT for a table with merged cells", _
NewColumnWidth)
If Val(NewColumnWidth) = 0 Then Exit Sub
For i = 1 To TblRowsNumber
LastColNum = .Rows(i).Cells.Count
.Rows(i).Cells(LastColNum).Select
Selection.MoveRight
Selection.InsertCells ShiftCells:=wdInsertCellsShiftRight 'добавляем ячейку'
Selection.Cells.Width = NewColumnWidth
Next
End With
Selection.MoveDown
End Sub
Разнос данных по строкам и столбцам таблицы
Рубрика: Таблицы Word | Макросы | Вопрос-ОтветМетки: макросы | таблицы
Дата: 27/01/2009 07:48:45
Игорь спрашивает:
Есть ряд слов:
собака кошка мышка кенгуру
цыпленок хомяк мишка птичка.
Как мне их добавить в таблицу, состоящую из 4 столбцов и 2 строк, чтобы каждое слово находилось в отдельной ячейке, не применяя к каждому слову операцию вырезать-вставить. Эти слова у меня так и находятся в столбик по 4 слова в строчку в вордовском документе (так же, как я и написал в примере), а чуть ниже есть таблица пустая, вот туда мне и надо их вставить.
Игорь, попробуйте вот такой макрос (ниже). Выделите ваши слова и запустите макрос:
Удаление конечных знаков абзацев из ячеек таблиц
Рубрика: Таблицы Word | Макросы | Вопрос-ОтветМетки: макросы | таблицы | форматирование
Дата: 17/11/2008 09:51:12
Юрий интересуется:
Как во всем документе удалить лишние концевые знаки абзацев в конце ячеек таблиц? Это именно знаки абзацев (^13) перед маркером конца ячейки. Вариант искать "(*^13)@", заменить на "\1" не работает в ячейках...
Для этих целей следует использовать следующий макрос. Работает для всех таблиц в документе и удаляет знаки абзацев только в конце текста в ячейке:
Преобразование всех таблиц документа в текст
Рубрика: Стили и форматирование | Таблицы Word | Макросы | Вопрос-ОтветМетки: макросы | таблицы | форматирование
Дата: 27/10/2008 11:15:43
Максим спрашивает:
Преобразовать одну таблицу в текст — дело нехитрое. Но у меня очень часто возникает задача преобразовать ВСЕ таблицы документа в текст. А их может быть десятки и сотни (это типичная ситуация, когда открываешь веб-страницу.) Есть ли какое-нибудь решение?
Следующий макрос может решить эту проблему.
Как объединить одинаковые таблицы
Рубрика: Вопрос-Ответ | Макросы | Таблицы WordМетки: макросы | таблицы
Дата: 09/10/2008 14:40:26
Александр спрашивает:
У меня Word 2003. Таблица, загруженная с Интернета, разорвана командой "Разбить таблицу". Вопрос: Как её соединить обратно?
Похожий вопрос был задан недавно на форуме ru-board.com. Пользователь спрашивал, как ему объединить несколько одинаковых по структуре таблиц в одну.
Я предлагаю воспользоваться следующим макросом (автор Helmut Weber). Однако, будьте аккуратны и осторожны, так как если между вашими таблицами есть какой-то текст, то он будет удален.
Макрос определения номера таблицы
Рубрика: Вопрос-Ответ | Макросы | Таблицы WordМетки: макросы | статистика | таблицы
Дата: 24/09/2008 18:10:34
Руслан спрашивает:
В документе несколько таблиц. Как узнать номер таблицы, в которой находится курсор ввода?
Если вам нужно узнать номер конкретной таблицы (в той, где находится курсор ввода), то надо воспользоваться следующим кодом:
Sub numCurTable() 'номер текущей таблицы MsgBox ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count End Sub

Поиск
Рубрики
Подписка
Читают
Обсуждают
Форум
страницы
сайты
статистика