
결합하고 싶은 데이터 행이 몇 개(행 수는 동적이어야 함) 있고 각각의 고유한 조합을 얻습니다. 특정 수의 데이터 행에 대해 그렇게 할 수 있지만 행 수가 고정되어 있지 않은 경우 어떻게 해야 합니까?
예를 들어:
입력 데이터:
Row 1 : Correct Wrong Blank
Row 2 : Correct1 Wrong1 Blank1
Row 3 : Ok Cancel
출력은 다음과 같아야 합니다.
Correct Correct1 Ok
Correct Correct1 Cancel
Correct Wrong1 Ok
Correct Wrong1 Cancel
Correct Blank1 Ok
Correct Blank1 Cancel
Wrong Correct1 Ok
Wrong Correct1 Cancel
Wrong Wrong1 Ok
Wrong Wrong1 Cancel
Wrong Blank1 Ok
Wrong Blank1 Cancel
Blank Correct1 Ok
Blank Correct1 Cancel
Blank Wrong1 Ok
Blank Wrong1 Cancel
Blank Blank1 Ok
Blank Blank1 Cancel
답변1
다음과 같은VBA매크로는 다음에서 데이터를 읽습니다.시트1그리고 그 결과를 넣으세요.시트2:
Sub Combinations()
Dim r1 As Range, r2 As Range, r3 As Range
Dim v1 As Variant, v2 As Variant, v3 As Variant
Dim rw1 As Range, rw2 As Range, rw3 As Range
Dim s As Worksheet, K As Long
Set s = Sheets("Sheet2")
K = 1
With Sheets("Sheet1")
Set rw1 = .Rows(1).Cells.SpecialCells(xlCellTypeConstants)
Set rw2 = .Rows(2).Cells.SpecialCells(xlCellTypeConstants)
Set rw3 = .Rows(3).Cells.SpecialCells(xlCellTypeConstants)
End With
For Each r1 In rw1
v1 = r1.Value
For Each r2 In rw2
v2 = r2.Value
For Each r3 In rw3
v3 = r3.Value
s.Cells(K, 1) = v1
s.Cells(K, 2) = v2
s.Cells(K, 3) = v3
K = K + 1
Next r3
Next r2
Next r1
End Sub