Word. Узнать объединены ли ячейки

Программирование на Visual Basic for Applications
dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Word. Узнать объединены ли ячейки

Сообщение dr.MIG » 17.07.2010 (Сб) 19:35

Перебираю ячейки в таблице, как узнать является ли текущая ячейка результатом объединения нескольких столбцов?
Salus populi suprema lex

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Word. Узнать объединены ли ячейки

Сообщение Alec » 17.07.2010 (Сб) 21:18

По-моему непосредственно это невозможно. Слишком много условностей - если объединить две ячейки, а потом получившуюся разбить на три, которая будет считаться объединенной?
Сравнением ширин ячеек с ширинами в других строках?
Иногда лучше вовремя остановиться...
И начать заново!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Word. Узнать объединены ли ячейки

Сообщение iGrok » 17.07.2010 (Сб) 21:37

Alec писал(а):Сравнением ширин ячеек с ширинами в других строках?

А чем это поможет, если
Alec писал(а):...объединить две ячейки, а потом получившуюся разбить на три...
label:
cli
jmp label

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Word. Узнать объединены ли ячейки

Сообщение dr.MIG » 17.07.2010 (Сб) 21:58

В общем случае, возможно это и не решаемо. Меня же интересует частный случай. Во вложении пример DOC-файла. Это расписание. Другие варианты не имеют принципиальных отличий и имеют сходную структуру. Задача состоит в том, чтобы из этого общего расписания извлечь расписание для отдельных групп, т.е. в данном случае получить 24 отдельных расписания. Вот и думаю над алгоритмом.
Рассматривал как наиболее простой вариант поставить курсор в верхнюю ячейку и спускаясь на ячейку ниже получить искомое. Однако это движение так же не удается организовать так как появляется ошибка, которую и следует ожидать: "Отсутсвует доступ к отдельным строкам, поскольку таблица имеет ячейки, объежиненные по вертикали."
Вложения
sample.zip
(28.48 Кб) Скачиваний: 203
Salus populi suprema lex

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Word. Узнать объединены ли ячейки

Сообщение alibek » 17.07.2010 (Сб) 22:40

В Word-овских таблицах нет такого понятия "объединенной ячейки", какое вкладывается в объединенные ячейки Excel.
Так что считай количество ячеек в строке и складывай их ширину, после чего сравнивай со следующей строкой.
Lasciate ogni speranza, voi ch'entrate.

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Word. Узнать объединены ли ячейки

Сообщение viter.alex » 20.07.2010 (Вт) 12:41

Если ячейки объединены по строкам, то можно узнать так (работает только для Selection, но не для Range):
Код: Выделить всё
ActiveDocument.Tables(1).Range.Cells(1).Select
With Selection
  If .Information(wdStartOfRangeRowNumber) <> .Information(wdEndOfRangeRowNumber) Then
    MsgBox "Ячейка объединена по " & .Information(wdEndOfRangeRowNumber) - .Information(wdStartOfRangeRowNumber) - 1 & " строкам"
  End If
End With

С ячейками, объединёнными по столбцам, так не получится.
Лучше день потерять — потом за пять минут долететь!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Word. Узнать объединены ли ячейки

Сообщение dr.MIG » 20.07.2010 (Вт) 20:00

Да, я этот код нашел, но интересовало именно объединение по столбцам.
Тогда другой вопрос -- можно ли как-то эмулировать переход на ячейку вниз? Или единственный выход -- это MoveDown с wdLine и проверкой произошел ли переход к другой ячейке или был переход внутри ячейки?
Salus populi suprema lex

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Word. Узнать объединены ли ячейки

Сообщение arvitaly » 20.07.2010 (Вт) 20:08

Код: Выделить всё
Selection.Move Unit:=wdRow, Count:=1

?


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList