Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как в Excell скомбинировать ВСЕ варианты слияния ячеек

15K
01 февраля 2006 года
serg3000
1 / / 01.02.2006
Привет.
Вот такая проблема:
Есть таблица с текстом, колонки, длина может быть разной
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неправильно определяется ДЛИНА циклов
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог