2014-09-14 4 views
0

Я хотел бы создать комбинации ключевых слов в Excel, но не все возможные перестановки (это будет создавать слишком много комбинаций)Excel VBA генерировать комбинации элементов из 3 столбцов или более

Вот 3 примера колонны, я листинг только 2 значения в них:

A: 
Two 
Three 

B: 
Red 
Blue 

C: 
Shirts 
Jackets 

И результат будет выглядеть следующим образом:

Two Red Shirts 
Two Red Jackets 
Two Blue Shirts 
Two Blue Jackets 
Three Red Shirts 
Three Red Jackets 
Three Blue Shirts 
Three Blue Jackets 

Я не хочу слов, чтобы изменить свои позиции, поэтому третье слово не может БЭК Сначала. Столбцы могут иметь различное количество ячеек. Там может быть несколько слов в ячейке, и было бы идеально, если бы это было бы легко изменить 3 колонки комбинации 4 или 5.

Заранее спасибо

+0

-1 потому что вы, очевидно, просто просили нас работать на вас. Если у вас есть вопрос, спросите его. В противном случае это мгновенно закрывается. – ApplePie

+0

@ AlexandreP.Levasseur Я пробовал много разных способов, но я сдался. Все они, кажется, переставляют все возможные комбинации слов, а не логически правильно ... – CamSpy

ответ

2

Нечто подобное может работать:

Sub test() 
    Dim x, y, z, lastRow As Long 
    lastRow = ThisWorkbook.Sheets(1).UsedRange.Rows.Count 
    For Each x In Range("A1:A" & lastRow) 
    For Each y In Range("B1:B" & lastRow) 
     For Each z In Range("C1:C" & lastRow) 
     Debug.Print x & " " & y & " " & z 
     Next z 
    Next y 
    Next x 
End Sub 

Я написал вывод в окно Immediate, но вы можете поместить его в любом месте.

Если вы хотите добавить больше столбцов, вам нужно будет добавить больше циклов. Если ячейки пустые, они не добавят ничего (несуществующее содержимое ячейки) в строку.

+0

@JohnyAggro спасибо, но я не уверен, как заставить его работать. Я запускаю макрос, но ничего не происходит. Нужно ли мне выбирать что-нибудь для этого? – CamSpy

+0

Вам нужно открыть окно Immediate. Ctrl + G из редактора VB на ПК. – JonnyAggro

+0

@JohnyAggro с 5 строками и 3 столбцами текста, ваше решение в окне Immediate замерзает мой Excel – CamSpy

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