Как в Excell скомбинировать ВСЕ варианты слияния ячеек
Вот такая проблема:
Есть таблица с текстом, колонки, длина может быть разной
A B C
a1 b1 c1
a2 b2 c2
a3 b3
a4
Нужно на другой лист в столбик поместить ВСЕ возможные комбинации ячеек из столбцов А В С
типа:
a1b1c1
a1b1c2
a1b2c1
a1b2c2
...
a4b3c2
Помогите с макросом, который перетасует (сделает ВСЕ возможные комбинации) все эти ячейки!
Я сделал макрос, но он работает криво: неправильно определяется ДЛИНА циклов
по столбцам В и С
Вот он: (в таблице нужны 2 листа DATA-с данными и DATA1 для результата)
Sub BuildData()
Dim rng As Range
Dim rngA As Range
Dim rngB As Range
Dim rngC As Range
Dim cell As Range
Dim cellA As Range
Dim cellB As Range
Dim cellC As Range
'****************
Sheets("DATA1").Select
ActiveCell.Columns("A:A").EntireColumn.Select
Selection.ClearContents
Sheets("DATA").Select
'****************
With Worksheets("Data")
Set rngA = .Range("A1").CurrentRegion.Columns(1)
'ActiveCell.Offset(0, 1).Range("A1").Select
'Set rngB = .Range("A1").CurrentRegion.Columns(2)
'Set rngC = .Range("A1").CurrentRegion.Columns(3)
Set rngB = .Range("b1").Columns(2)
Set rngC = .Range("c1").Columns(3)
End With
ib = 1
ic = 1
icellsumma = 1 ' номер строки для ИТОГОВой суммы ячеек
SpaceA = "." ' разделитель в слиянии ячеек
ia = 1
While ia < rngA.Rows.Count 'цикл по столбцу А
'Set cellA = rngA.Cells(ia)
'ACat = cellA.Value
ACat = rngA.Cells(ia).Value
ia = ia + 1
ib = 1
While ib < rngB.Rows.Count 'цикл по столбцу В
Set cellB = rngB.Cells(ib)
BCat = cellB.Value
ib = ib + 1
ic = 1
While ic < rngC.Rows.Count 'цикл по столбцу C
Set cellC = rngC.Cells(ic)
CCat = cellC.Value
ic = ic + 1
With Worksheets("Data1")
.Cells(icellsumma, "A").Value = ACat + SpaceA + BCat + SpaceA + CCat
icellsumma = icellsumma + 1
End With
Wend
Wend
Wend
End Subнеправильно определяется ДЛИНА циклов