powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать существуют ли сгруппированные диапазоны на листе
11 сообщений из 11, страница 1 из 1
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098610
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне необходимо разгруппировывать диапазоны если они сгруппированы. Однако если группировка отсутствует, то при разргуппировке возникает ошибка.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
          On Error GoTo ErrorHandler1
          WrkSht.Columns.Ungroup
ErrorHandler1:
          If Err.Number <>  0  Then
            Log StatBk, Err.Description,  1  ' запись в лог
          Else
            On Error GoTo ErrorHandler2
            WrkSht.Rows.Ungroup
ErrorHandler2:
            If Err.Number <>  0  Then
              Log StatBk, Err.Description,  1  ' запись в лог
            End If
            Err.Clear
          End If
          Err.Clear

Если Ифы сделать не вложенными, а последовательными, то после первого IF-а ошибка обрабатывается нормально, а после второго, выдается сообщение. Не понятно почему.
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098617
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blacksun
Забыл. MS Excel 2003.
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098686
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blacksunМне необходимо разгруппировывать диапазоны если они сгруппированы.Проверяй есть ли группировка. Пример из встроенной в VBA документации на Unmerge:
Код: plaintext
1.
2.
3.
4.
5.
6.
With Range("a3")
    If .MergeCells Then
        .MergeArea.UnMerge
    Else
        MsgBox "not merged"
    End If
End With
Кнопка F1 - очень полезная кнопка.

blacksunЕсли Ифы сделать не вложенными, а последовательными, то после первого IF-а ошибка обрабатывается нормально, а после второго, выдается сообщение. Не понятно почему.Нельзя делать вложеную обработку ошибок.
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098786
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl blacksunМне необходимо разгруппировывать диапазоны если они сгруппированы.Проверяй есть ли группировка. Пример из встроенной в VBA документации на Unmerge:
Код: plaintext
1.
2.
3.
4.
5.
6.
With Range("a3")
    If .MergeCells Then
        .MergeArea.UnMerge
    Else
        MsgBox "not merged"
    End If
End With
Кнопка F1 - очень полезная кнопка.

blacksunЕсли Ифы сделать не вложенными, а последовательными, то, после первого IF-а ошибка обрабатывается нормально, а после второго, выдается сообщение. Не понятно почему.Нельзя делать вложеную обработку ошибок.

Вообще-то если использовать UnMerge напрямую с рангом, то если ранг даже не сгруппирован, ошибка выдаваться не должна :-)

Код: plaintext
1.
2.
Sub Test1()
    ActiveSheet.Cells( 1 ,  1 ).UnMerge
End Sub

Если надо все разом, то:

Код: plaintext
1.
2.
Sub Test2()
    ActiveSheet.Cells.UnMerge
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098832
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При чем тут Merge! Я работаю с Group. Проверки на Group нет.
Есть только такая
Код: plaintext
1.
2.
3.
4.
Set myDocument = Worksheets( 1 )
For Each s In myDocument.Shapes
    s.Ungroup
Next

Взято из хелпа
Но она у меня не работает, т.к. коллекция Shapes всегда пуста.
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098844
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blacksunПри чем тут Merge! Я работаю с Group. Проверки на Group нет.
Есть только такая
Код: plaintext
1.
2.
3.
4.
Set myDocument = Worksheets( 1 )
For Each s In myDocument.Shapes
    s.Ungroup
Next

Взято из хелпа
Но она у меня не работает, т.к. коллекция Shapes всегда пуста.

Пардон. Такая:
Код: plaintext
1.
2.
3.
Set myDocument = Worksheets( 1 )
For Each s In myDocument.Shapes
    If s.Type = msoGroup Then s.Ungroup
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098852
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blacksunПри чем тут Merge! Я работаю с Group.Ой, прошу прощения.

blacksunПроверки на Group нет.Есть она.
Код: plaintext
1.
2.
3.
4.
for each col in WrkSht.Columns
   if col.OutlineLevel > 1  then
       col.Ungroup
   end if
next
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098895
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем не подходит это:

Код: plaintext
1.
2.
3.
4.
Sub Test()
    On Error Resume Next
    ActiveSheet.Columns.Ungroup
    On Error GoTo  0 
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098902
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только учитывай что Ungroup убирает только один уровень за раз ;-)
KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098915
blacksun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL (XL)только учитывай что Ungroup убирает только один уровень за раз ;-)
KL
[MVP - Microsoft Excel]
Да я уже заметил. Пришлось цикл написать.
GoTo 0 мне не подходит. Боюсь пропустить ошибки. Для мня это критично.

Большое вам спасибо и Сове, и KL (XL)
...
Рейтинг: 0 / 0
Как узнать существуют ли сгруппированные диапазоны на листе
    #34098934
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blacksunGoTo 0 мне не подходит. Боюсь пропустить ошибки. Для мня это критично.

Так ты делай это локально, только для строки ActiveSheet.Columns.Ungroup, тут-то пропускать особо нечего - или Ungroup или не Ungroup :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать существуют ли сгруппированные диапазоны на листе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]