|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.03.2009, 20:34 | #1 |
Пользователь
Регистрация: 11.02.2009
Сообщений: 29
|
Выделить все таблицы в документе
Добрый вечер!
Никак не могу собрать макрос. Есть файл, в нём много таблиц. Подскажите пожалуйста, как выделить все таблицы в документе, а текст между ними оставить невыделенным? Table.Selection Tables ? |
04.03.2009, 22:37 | #2 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Только вручную. (Ясно, что это не метод.)
Очень похожую — обратную — задачу недавно (в конце января) здесь решали: http://www.programmersforum.ru/showthread.php?t=36501. И вот там как-то обошлись без хитроумного выделения. В конечном счёте важно, что вам надо с этими (пока не выделенными) таблицами сделать.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
05.03.2009, 05:25 | #3 |
Пользователь
Регистрация: 11.02.2009
Сообщений: 29
|
Мне нужно ко всем таблицам в документе применить единое форматирование.
Сейчас я это делаю выделяя каждую таблицу вручную и используя макрос - форматирования таблицы. Но таблиц иногда бывает очень много - до 150 листов. Напряжно) Потому надо в начало макроса форматирования добавить строки: "выделить все таблицы в документе"))) |
05.03.2009, 14:01 | #4 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Код:
Лучше день потерять — потом за пять минут долететь!©
|
|
05.03.2009, 20:10 | #5 |
Пользователь
Регистрация: 11.02.2009
Сообщений: 29
|
Привет, viter.alex!
Спасибо, так и сделал.) Посмотрел на те макросы, что ты мне написал по анализу ячеек, разобрался как работает) Всё отлично! Только почему-то объявление в одном из случаев не сработало, а потом получилось) |
18.04.2011, 17:28 | #6 |
Регистрация: 25.09.2009
Сообщений: 3
|
Доброе время суток!
Прошу помочь. Я не программист вообще, но уверенный пользователь. Могу очень уверенно переписать чужой код как обезьяна и немножко переделать его под себя. Написала, перелопатив гору макросов , код, чтобы форматировать все таблицы в документе: Sub Table() On Error Resume Next Dim myTable As Table Dim myCell As Cell Dim myRange As Range Dim с As Integer 'Подсчёт количества столбцов в таблице Dim i As Long Application.ScreenUpdating = False 'Запрет обновления экрана For Each myTable In ActiveDocument.Tables ' Выровнять все столбцы по центру 'Обрабатываем ячейки во всех столбцах кроме первого 'Перебор всех ячеек c = myTable.Columns.Count For i = 2 To c myTable.Columns(i).Select Selection.Find.ClearFormatting With Selection For Each myCell In .Cells myCell.Range.ParagraphFormat.Alignm ent = wdAlignParagraphCenter myCell.Range.Cells.VerticalAlignmen t = wdCellAlignVerticalCenter Next myCell End With Next i ' Применить ко всем таблицам одинаковый стиль myTable.Style = ActiveDocument.Styles("Средний список 2 - Акцент 2") myTable.Rows.Alignment = wdAlignRowCenter myTable.AutoFitBehavior wdAutoFitWindow myTable.Rows.HeightRule = wdRowHeightAuto myTable.Rows.HeightRule = wdRowHeightAtLeast myTable.Rows.WrapAroundText = False myTable.PreferredWidthType = wdPreferredWidthPercent myTable.PreferredWidth = 99 myTable.Range.Font.Size = 9 myTable.Rows.AllowBreakAcrossPages = False With myTable.Range .Find.ClearFormatting .Find.Text = "^p" 'Ищем вхождения переводов строк и удаляем их .Find.Replacement.Text = "" .Find.Forward = True .Find.Execute Replace:=wdReplaceAll For Each myCell In .Cells Set myRange = myCell.Range myRange.MoveEnd Unit:=wdCharacter, Count:=-1 myCell.Range.Text = Trim(myRange.Text) 'Убираем пробелы myCell.Range.ParagraphFormat.LeftIn dent = CentimetersToPoints(0) myCell.Range.ParagraphFormat.FirstL ineIndent = 0 Next myCell End With With myTable.Rows(1) .HeadingFormat = True 'Установка заголовков для 1-х строк таблиц .HeightRule = wdRowHeightAuto 'Установка автовысоты первых строк End With With myTable.Rows(1) For Each myCell In .Cells myCell.Range.ParagraphFormat.Alignm ent = wdAlignParagraphCenter myCell.Range.Cells.VerticalAlignmen t = wdCellAlignVerticalCenter myCell.Range.ParagraphFormat.KeepWi thNext = True Next myCell End With With myTable.Range myTable.Select Selection.Cells.DistributeWidth End With If Err.Number <> 0 Then Err.Clear Next Application.ScreenUpdating = True 'Разрешаем обновление экрана End Sub Меня всё устраивает. Но есть одна загвоздка. Вот это кусок кода делает ширину всех столбцов одинаковой. With myTable.Range myTable.Select Selection.Cells.DistributeWidth End With А мне надо выровнять по ширине все столбцы, кроме первого. И с этим я не могу справиться. Ещё раз повторяю - не программист я, может, кто-нибудь подскажет, как исправить эту мелочь и ошибки во всём коде исправит? Спасибо заранее. Последний раз редактировалось Vera111; 18.04.2011 в 17:32. |
18.04.2011, 19:16 | #7 |
Старожил
Регистрация: 24.01.2011
Сообщений: 3,043
|
1. код выложите с тегами
2. мне кажется лучше сначала всё сделать для всего одинаково, а затем занятся первым столбцом |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск между символами в документе | viter.alex | Microsoft Office Word | 7 | 24.05.2009 20:00 |
Excel. как удалить из таблицы все гиперссылки? и запретить что бы URL ими становились | 9go | Microsoft Office Excel | 2 | 17.01.2009 10:19 |
Пароль на Вордовском документе... | Гриха | Безопасность, Шифрование | 2 | 11.11.2008 17:40 |
Фон в документе Microsoft Word | AleksP | Microsoft Office Word | 8 | 14.09.2008 17:55 |
Выделить все | Михаил Юрьевич | Общие вопросы Delphi | 1 | 21.02.2008 23:12 |