Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать существуют ли сгруппированные диапазоны на листе / 11 сообщений из 11, страница 1 из 1
01.11.2006, 17:42:39
    #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
01.11.2006, 17:43:42
    #34098617
blacksun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существуют ли сгруппированные диапазоны на листе
blacksun
Забыл. MS Excel 2003.
...
Рейтинг: 0 / 0
01.11.2006, 18:01:09
    #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
01.11.2006, 18:24:50
    #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
01.11.2006, 18:42:01
    #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
01.11.2006, 18:45:20
    #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
01.11.2006, 18:49:03
    #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
01.11.2006, 19:04:48
    #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
01.11.2006, 19:07:28
    #34098902
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существуют ли сгруппированные диапазоны на листе
только учитывай что Ungroup убирает только один уровень за раз ;-)
KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
01.11.2006, 19:16:14
    #34098915
blacksun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать существуют ли сгруппированные диапазоны на листе
KL (XL)только учитывай что Ungroup убирает только один уровень за раз ;-)
KL
[MVP - Microsoft Excel]
Да я уже заметил. Пришлось цикл написать.
GoTo 0 мне не подходит. Боюсь пропустить ошибки. Для мня это критично.

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

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

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


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