powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Дерево данных в Excel
6 сообщений из 6, страница 1 из 1
Дерево данных в Excel
    #35158006
Max14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа! Помогите решить задачу! Необходимо реализовать дерево в екселе с помощью макроса. Группировать в зависимости от данных, те динамически. Смотреть приложеный файл
...
Рейтинг: 0 / 0
Дерево данных в Excel
    #35159666
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Dim r1, r2  ' текущее значение
Dim a1, a2  ' номер строки
Dim p1, p2  ' прежнее значение

Dim stroki As Range, rng As Range


Sub Макрос1()

    Set stroki = ThisWorkbook.Worksheets("исходные данные").Range("A1:A30")
    
    For Each rng In stroki
    
        r2 = Mid(rng.Value,  1 ,  3 )
        If p2 <> r2 Then
            Group12 (a2)
            p2 = r2
            a2 = rng.Row
        End If
        
        r1 = Mid(rng.Value,  1 ,  1 )
        If p1 <> r1 Then
            Group12 (a1)
            p1 = r1
            a1 = rng.Row
        End If
    
    Next
    
End Sub


Sub Group12(ByVal a)
    If (IsEmpty(a) = False) And ((a +  1 ) < (rng.Row -  1 )) Then
        stroki.Range((a +  1 ) & ":" & (rng.Row -  1 )).Group
    End If
End Sub
...
Рейтинг: 0 / 0
Дерево данных в Excel
    #35159935
Max14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое! Но почемуто 4 уровень не работает :( . Помогите плиз разобраться.
...
Рейтинг: 0 / 0
Дерево данных в Excel
    #35160278
livin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max14Спасибо большое! Но почемуто 4 уровень не работает :( . Помогите плиз разобраться.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Dim r1, r2  ' текущее значение
Dim a1, a2  ' номер строки
Dim p1, p2  ' прежнее значение

Dim stroki As Range, rng As Range


Sub Макрос1()

    Set stroki = ThisWorkbook.Worksheets("исходные данные").Range("A1:A30")
    
    For Each rng In stroki
        r3 = Mid(rng.Value,  1 ,  5 )
        If p3 <> r3 Then
            'MsgBox "a2: " & a2
            Group12 (a3)
            p3 = r3
            a3 = rng.Row
        End If
        
        r2 = Mid(rng.Value,  1 ,  3 )
        If p2 <> r2 Then
            'MsgBox "a2: " & a2
            Group12 (a2)
            p2 = r2
            a2 = rng.Row
        End If
        
        r1 = Mid(rng.Value,  1 ,  1 )
        If p1 <> r1 Then
        'MsgBox "a1: " & a1
            Group12 (a1)
            p1 = r1
            a1 = rng.Row
        End If
    
    Next
    
End Sub


Sub Group12(ByVal a)
    If (IsEmpty(a) = False) And ((a +  1 ) < (rng.Row -  1 )) Then
        stroki.Range((a +  1 ) & ":" & (rng.Row -  1 )).Group
    End If
End Sub



но, почему-то не правильно отрабатывает в последних ячейках
...
Рейтинг: 0 / 0
Дерево данных в Excel
    #35161530
Max14
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите плиз, очень срочно нужно!!!
...
Рейтинг: 0 / 0
Дерево данных в Excel
    #35162099
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переменные всё-таки надо объявить
Код: plaintext
1.
2.
Dim r1, r2, r3  ' текущее значение
Dim a1, a2, a3  ' номер строки
Dim p1, p2, p3  ' прежнее значение
и последнюю строку надо указать на единицу больше или вообще "A:A"
что бы обработать нормально последнюю строку
Код: plaintext
    ... .Range("A1:A30")

и наверное надо добавлять пустую строку, (может быть, не уверен), если в данной строке группировка уже есть.
Ну в смысле на этой строке плюсик, уже нарисовался.
Код: plaintext
    rng.Offset( 1 ).EntireRow.Insert
вообщем с четвёртым уровнем, у меня то же трудности из-за того, что я не знаю как узнать, есть ли плюс на этой строке или нет
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Дерево данных в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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