Статьи из блога

Статьи из блога

Как объединить одинаковые таблицы

Рубрика: Вопрос-Ответ, Макросы, Таблицы Word
Метки: |
Четверг, 9 октября 2008 г.
Просмотров: 26149
Подписаться на комментарии по RSS
Версия для печати

[Ссылки на статью]

Александр спрашивает:

У меня Word 2003. Таблица, загруженная с Интернета, разорвана командой "Разбить таблицу". Вопрос: Как её соединить обратно?

Похожий вопрос был задан недавно на форуме ru-board.com. Пользователь спрашивал, как ему объединить несколько одинаковых по структуре таблиц в одну.

 

Я предлагаю воспользоваться следующим макросом (автор Helmut Weber). Однако, будьте аккуратны и осторожны, так как если между вашими таблицами есть какой-то текст, то он будет удален.

Sub delParSignBetweenTables() 
'удаление знаков абзаца между таблицами с одинаковой структурой 
'если в документе после таблиц есть текст, а после этого текста 
'идет другая таблица, то текст над этой таблицей будет удален 
Dim oTbl1 As Table 
Dim oTbl2 As Table 
Dim rtmp As Range 
Dim i As Long 
Set rtmp = Selection.Range 
With ActiveDocument 
   i = .Tables.Count 
   While i > 1 
      Set oTbl2 = .Tables(.Tables.Count) 
      Set oTbl1 = .Tables(.Tables.Count - 1) 
      rtmp.Start = oTbl1.Range.End 
      rtmp.End = oTbl2.Range.Start 
      rtmp.Delete 
      i = .Tables.Count 
   Wend 
End With 
End Sub

Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Создание макроса из готового кода

Автоматическая запись макроса

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 3

  1. Леонид Бродский
    30.10.2008 в 19:01 | #1

    Код можно немного упростить :)

    With ActiveDocument 
       While .Tables.Count > 1 
          Set oTbl2 = .Tables(.Tables.Count) 
          Set oTbl1 = .Tables(.Tables.Count - 1) 
          rtmp.Start = oTbl1.Range.End 
          rtmp.End = oTbl2.Range.Start 
          rtmp.Delete 
       Wend 
    End With

  2. Ли Гушка
    12.03.2013 в 11:08 | #2

    А я с макросами не знакома. И вообще, я - чайник))) Но необходимые мне таблицы объединила так: преобразовала их в текст, приблизила текст таблиц друг к другу, а потом все это хозяйство преобразовала в таблицу!)))) Заняло минуту времени)))

  3. Владимир
    11.10.2013 в 23:04 | #3

    Поставьте курсор за таблицай и нажмите del.

Оставьте комментарий!

(обязательно)

^ Наверх