2015-08-07 5 views
0

Я использую Excel 2010, и я хотел бы группировать строки данных с помощью VBA. Я буду перебирать каждую строку для определения начальной и конечной точки группы. Столбец А где я начну. Как вы можете видеть ниже, у меня есть 10 строк. Начало моей первой группы должно быть "AAA". Эта группа будет принимать все строки до "BBB". Следующая группа начнется с "BBB" и возьмет все строки ниже до "CCC". Третья строка начнется с "CCC", возьмите все строки ниже и остановитесь, когда она встретит пустую строку. Группы должны принимать любое количество строк с учетом требуемых заголовков групп. Как только у меня это есть, я хочу сортировать строки в каждой группе, а затем использовать условное форматирование.Группировка с использованием макроса VBA

Не могли бы вы помочь с группировками и с чего начать?

A 
1 AAA 
2 ROW CONTENT 
3 ROW CONTENT 
4 BBB 
5 ROW CONTENT 
6 CCC 
7 ROW CONTENT 
8 ROW CONTENT 
9 
10 

ответ

0

Это должно заставить вас начать. Он будет определять каждый диапазон, ища имена разделов, а затем сортировать эти диапазоны.

' Array of section names... 
Dim a As Variant 
a = Array("AAA", "BBB", "CCC", "") 

Dim i As Long, intStart As Long, intEnd As Long 
For i = 0 To UBound(a) - 1 

    intStart = Range("A:A").Find(a(i)).Row 
    intEnd = Range("A:A").Find(a(i + 1)).Row - 1 

    With Sort 
     .SetRange Range(Cells(intStart, 1), Cells(intEnd, 1)) 
     .Header = xlYes 
     .Apply 
    End With 

Next 
+0

Привет, большое спасибо за ваш ответ. Это работает отлично, и у меня есть своя группировка данных, но в моей колонке есть расхождения, где порядок неправильный, то есть исходный отчет выводит AAA, BBB, DDD, CCC - это может меняться каждый раз, когда создается исходный отчет , Я привел данные в массив 2d (текст сохранен в 1-м столбце, строки хранятся во 2-м столбце), что было бы лучшим способом сортировки по строкам (2-й столбец)? – user3364233

Смежные вопросы