Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 02.08.2012, 14:56   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию Добавить строку в таблицу с объединенными ячейками

Всем доброго. Есть таблица, в которой шапка содержит объединенные ячейки.
Задача: Добавлять в цикле в таблицу строки и заполнять их ячейки данными.
Делаю такие манипуляции:
Код:
Private Sub AddRow(t As Table)
 Dim r As Row
 Set r = t.Rows.Add
 
 If Not r Is Nothing Then
  For i = 0 To adorec.Fields.Count - 1
   s = adorec.Fields(i).Value
   r.Cells(i + 1).Range.Text = s
  Next i
 End If
End Sub
Где t - передаваемая таблица как ThisDocument.Tables(1)
adorec - источник данных.

Проблема в том что переменная r принимает значение Nothing после t.Rows.Add
Самое непонятное для меня то что строки добавляются. Но обратится к ним я почему-то не могу.
Подскажите как решать такую проблему и почему она происходит?

P.S. Текст ошибки:
Цитата:
Отсутствует доступ к отдельным строкам, поскольку таблица имеет ячейки, объединенные по вертикали
I'm learning to live...

Последний раз редактировалось Stilet; 02.08.2012 в 14:58.
Stilet вне форума Ответить с цитированием
Старый 02.08.2012, 16:05   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Если в таблице есть объединенные ячейки по вертикали, то строки как бы не существуют, т.к. в одной и той же строке ячейки имеют разный номер строки.
Аналогично, если в таблице есть объединенные ячейки по горизонтали, то столбцы как бы не существуют, т.к. в одном и том же столбце ячейки имеют разный номер столбца.
Если ячейки объединены только по вертикали, можно сделать так:

Код:
Private Sub AddRow(t As Table)
 Dim i&, s$, c As Cell
 t.Rows.Add
 With t.Columns(1)
    Set c = .Cells(.Cells.Count) 'последняя ячейка первого столбца
 End With
  For i = 0 To adorec.Fields.Count - 1
   s = adorec.Fields(i).Value
   c.Range.Text = s
   Set c = c.Next 'след. ячейка в строке
  Next i
 End Sub
Если есть объединение и по горизонтали, и по вертикали, то так можно получить последнюю ячейку в таблице
Код:
Set c = t.Range.Cells(t.Range.Cells.Count)
и плясать от нее.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 02.08.2012 в 16:13.
Казанский вне форума Ответить с цитированием
Старый 02.08.2012, 16:07   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 2,344
По умолчанию

ну так и файл где пробуете и как начинаете код исполнять
Ципихович Эндрю вне форума Ответить с цитированием
Старый 03.08.2012, 12:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
Казанский
Идею понял, спасибо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти запись и добавить в таблицу StudUL C++ Builder 21 17.05.2012 13:35
Добавить данные в таблицу Access ара Помощь студентам 19 14.05.2011 17:09
Как сделать таблицу (в Delphi) с редактируемыми ячейками duhduhduh Компоненты Delphi 2 14.07.2010 12:55
Работа с объединенными ячейками tae1980 Microsoft Office Excel 6 13.02.2009 22:25
Добавить таблицу в MS ACCESS Seqular БД в Delphi 5 21.02.2007 02:14


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840