2017-09-13 12 views
0

어떻게 세 번째와 네 번째 범위/배열을 다음 코드에 추가합니까?VBA가있는 데카르트 제품

Sub cartesianproduct() 
Dim startrange As Range 

range1 = Application.InputBox(Prompt:="Please Select First Range", Type:=8) 
range2 = Application.InputBox(Prompt:="Please Select Second Range", Type:=8) 


Set startrange = Application.InputBox(Prompt:="Please select where you want to put it", Type:=8) 
array1 = [range1] 
array2 = [range2] 


startrange.Select 
For i = 1 To UBound(array1) 
    For x = 1 To UBound(array2) 
     z = z + 1 
     ActiveCell.Offset(z, 0).Value = array1(i, 1) 
     ActiveCell.Offset(z, 1).Value = array2(x, 1) 
    Next 
Next 
End Sub 
+0

나는 * ** 방법에 대한 추가 컨텍스트를 제공 range3, 범위 4 및 배열 1, 배열 2이 코드는 질문에 대답 수 있지만 startrange.select ... – JAGIMAC

답변

0
Sub cartesianproduct() 
Dim startrange As Range 

range1 = Application.InputBox(Prompt:="Please Select First Range", Type:=8) 
range2 = Application.InputBox(Prompt:="Please Select Second Range", Type:=8) 
range3 = Application.InputBox(Prompt:="Please Select Third Range", Type:=8) 


Set startrange = Application.InputBox(Prompt:="Please select where you want to put it", Type:=8) 
array1 = [range1] 
array2 = [range2] 
array3 = [range3] 


startrange.Select 
For i = 1 To UBound(array1) 
    For x = 1 To UBound(array2) 
    For y = 1 To UBound(array3) 
     Z = Z + 1 
     ActiveCell.Offset(Z, 0).Value = array1(i, 1) 
     ActiveCell.Offset(Z, 1).Value = array2(x, 1) 
     ActiveCell.Offset(Z, 2).Value = array3(y, 1) 
    Next 
Next 
Next 
End Sub 
+0

에서 할 확실하지를 추가해야 * 및 ** ** 문제가 해결되면 답변의 장기적인 가치가 향상됩니다. – Alexander