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

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

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

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

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

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    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.

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

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

^ Наверх