#vba #excel
#vba #excel
Вопрос:
У меня проблема с группировкой строк Excel на основе данных строк. Ниже приведены примеры данных.
Я хочу сгруппировать данные на основе ресурса, Metro и Geo.
Я начал писать приведенный ниже макрос, но мне нужна некоторая помощь в выполнении этого.
Public Sub GroupCells()
Dim myRange As Range
Dim GeoRange As Range
Dim MetroRange As Range
Dim ResourceRange As Range
Dim GeosRange As Range
Dim MetrosRange As Range
Dim unionRange As Range
Set myRange = Range("Resource")
Set GeoRange = Range("Geo")
Set MetroRange = Range("Metro")
rowCount = Cells(Rows.Count, myRange.Column).End(xlUp).Row
Set TypesRange = myRange.SpecialCells(xlTextValues)
Set GeosRange = GeoRange.SpecialCells(xlTextValues)
Set MetrosRange = MetroRange.SpecialCells(xlTextValues)
Set unionRange = Union(TypesRange, GeosRange, MetrosRange)
For Each grp In unionRange
grp.Rows.Group
Next
End Sub
Комментарии:
1. (Краткое примечание — на каком листе вы хотите получить количество строк? В настоящее время он собирается использовать количество строк независимо от
ActiveSheet
того, что есть. Чтобы указать, добавьте имя листа передCells()
иRows.Count
, как вы делали дляspecialCells
)2. Почему бы не использовать функцию промежуточного итога по старым данным?
3. результатом записи макроса является: ActiveSheet. Используется диапазон. Промежуточный итог GroupBy:=1, функция:=xlSum, итоговый список:=Array(3), _ Replace:=True, разрывы страниц:=False, SummaryBelowData:=True ActiveSheet. Используется диапазон. Промежуточный итог GroupBy:=2, функция:=xlSum, итоговый список:=Array(3), _ Replace:=False, разрывы страниц:=False, SummaryBelowData:=True