나는 다양한 수준의 변수를 최대 7 개까지 조합하여 작성하고 작성해야하는 VBA 프로그램이 있습니다.가변 조합 작성자
코드가 모든 조합을 반복하고 각 변수 사이의 공백으로 씁니다. 그것은 마지막 줄 (LineP)에 의해 처음 구성되고 처음부터 끝까지 (줄 1에서 줄 6) 구성됩니다.
코드는 지금까지 작동하지만 사용자가 줄을 비워두면 배열이 비어 있기 때문에 조합이 없다고 가정합니다. 배열을 정의하는 을 "" ""이라고 지정하면이 문제를 해결할 수 있습니다. 그러나이 경우 변수 사이에 공백이 두 개 더 남습니다. 코드가 현재 작동하는 방식은 변수의 자리에 아무 것도 쓰지 않을뿐만 아니라 공간을 삭제하는 것입니다.
각 변수의 다른 레벨은 어레이에 저장됩니다 (변수 1의 레벨은 Array1, 변수 P의 레벨은 ArrayP에 있습니다).
`'Create Label Combinations
If Rowi > 1 Then
Dim Labeli As String
Dim Rowi2 As Integer
Rowi2 = Rowi
If P = 1 Then
For iP = 0 To UBound(ArrayP)
For i1 = 0 To UBound(Array1)
For i2 = 0 To UBound(Array2)
For i3 = 0 To UBound(Array3)
For i4 = 0 To UBound(Array4)
For i5 = 0 To UBound(Array5)
For i6 = 0 To UBound(Array6)
Labeli = Array1(i1) & " " & Array2(i2) & _
" " & Array3(i3) & " " & _
Array4(i4) & " " & Array5(i5) & _
" " & Array6(i6) & " " & ArrayP(iP)
Cells(Rowi2, 1).Value = Labeli
Rowi2 = Rowi2 + 1
Next i6
Next i5
Next i4
Next i3
Next i2
Next i1
Next iP
End If
End If`
전류 출력의 예는 여기에서 : 사용되는 변수 및 각 변수의 수치의 수가 이후
다음 I은 각 조합을 작성하는 데 사용하는 코드이다 이 문제를 해결하기 위해 다차원 배열을 사용할 수 있는지 확신 할 수 없을 때마다 변경됩니다. "Labeli"문자열 내에 if 문을 포함시키는 것이 가능할 수도 있다고 생각했지만 가능했다는 것을 발견하지 못했습니다. 어떤 도움이라도 대단히 감사 할 것입니다. 감사!
오 그래, 더 많은 감각을 만들 것입니다. 감사! – YTYT
불행하게도 배열이 비어있는 경우'iX = 0 ~ UBound (ArrayX)'로 작성하기 때문에 조합 루프는 아무 것도 쓰지 않습니다. 내가 어떻게 고칠 수 있는지 아십니까? – YTYT
@YTYT, 업데이트 된 답변을 시도하고 테스트했습니다. 원하는 내용대로 수행해야한다고 생각하므로 확인하십시오. 또한 이것이 도움이된다면 내 대답을 답으로 표시 할 수 있습니까? 감사. – Xabier