Группировка строк в EXCEL (OLE) #440351


#0 by upec
формирую запрос по справочник номенклатура и выгружаю его в excel. Собственно хотелось сгруппировать в екселе строки по группам, т.е. получить дерево, вот только как это сделать программно не представляю. Подскажите плз.
#1 by ДенисЧ
Запиши на это макрос и посмотри, как это делается. Потом повтори это в 1с
#2 by upec
как группировать я представляю, что то типа Rows("1:10").Group. С этим еще ближе к делу разберусь. Проблема в том ведя я не знаю какие строки мне группировать, то етсь не могу понять алгоритм построения дерева и выбора мне нужных строк
#3 by Happy Bear
ориентируйся по родителю - если в выборке родитель сменился, то группируй до предыдущей строки и запоминай строку, с которой выводится элементы с новым родителем
#4 by vde69
Public Sub GroupRangeInCol(SheetName As String, NumCol As Integer, RowStart As Integer, MaxLevel As Integer) ' процедура групирует строки по значению ячейки в колонки NumCol ' значение должно иметь вид: "Стр1/Стр2/Стр3/" разделитель "/" разделяет уровни ' а значения Стр - сами группы ' ' NumCol - номер колонки с ключами ' Key - Текущий ключ ' RowStart - строка начала анализа ' MaxLevel - количество развернутых уровней групп Dim RowStart2 As Integer Dim R Dim n As Integer Dim n1 As Integer Dim Key As String Dim Key2 As String Dim fl As Boolean Dim CountFl As Integer ' коллекция ключей Dim TabR As New Collection 'Exit Sub On Error GoTo ErrorHandler        ' заполним коллекцию различными ключами    For n = RowStart To Application.Worksheets(SheetName).Cells.SpecialCells.Row                        ' заодно формат числовой поставим (потом надо переделать через параметр)            For n1 = 1 To TabR.Count                If TabR.Item(n1) = Key Then    ' теперь идем по ключам и для каждого ищем диапазон    For n1 = 1 To TabR.Count        fl = True ' флаг показывает, что надо начинать новый диапазон        For n = RowStart To Application.Worksheets(SheetName).Cells.SpecialCells.Row                        If Strings.Left(Key2, Strings.Len(Key)) = Key Then                'данную строку включаем в диапазон                If fl Then ErrorHandler:     End Sub
#5 by upec
Займусь ка я этим завтра с утра ))
#6 by vde69
2 часа писал :) теперь двое суток разбиратся :)
#7 by upec
а что эт за функции Strings.Trim CStr Strings.Left не занимался бейсиком со школы ))
#8 by upec
а все загуглил, вроде все понятно, спс
#9 by upec
Как это Excel.XlSummaryRow.xlSummaryAbove через 1С достать не пойму
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С