엑셀실전VBA(편무학,가메출판사,2007,15,000원)를 사서 디비는 중. www.iexceller.com의 code예제가 도움 됨. 맨 땅에 헤딩하며 처음 만들어 본 코드가 이것인 바, 무쟈게 시행착오를 거침. 뭐, 하염없이 하노라면 익숙해질 날이 올...지도 모르는 일. (2007.09.04)
B |
C |
D |
E | |
3 |
|
|
|
|
4 |
|
2 |
4 |
|
5 |
|
|
|
|
6 |
1 |
0 |
1 |
2 |
7 |
2 |
0 |
1 |
3 |
8 |
3 |
0 |
1 |
4 |
9 |
4 |
0 |
2 |
3 |
10 |
5 |
0 |
2 |
4 |
11 |
6 |
0 |
3 |
4 |
12 |
7 |
1 |
2 |
3 |
13 |
8 |
1 |
2 |
4 |
14 |
9 |
1 |
3 |
4 |
15 |
10 |
2 |
3 |
4 |
Sub test_combination()
Dim i, j, k, rw, temp, tunit, tcom, a(20) As Byte
tunit = 4: tcom = 2 : '이 두 변수(tunit는 최대값, tcom은 셀수)를 조정하면 조합크기를 조절할 수 있음.
For i = 0 To tcom: a(i) = i: Next i
j = tcom: rw = 1
tprint:
Cells(5 + rw, 2) = rw
For i = 0 To tcom: Cells(5 + rw, i + 3) = a(i): Next i
rw = rw + 1
texam:
For i = 0 To tcom
If a(i) <> tunit - tcom + i Then GoTo tup1
Next i: GoTo tend
tup1:
For i = tcom To 0 Step -1
If a(i) < tunit - tcom + i Then j = i: i = 0
Next i
temp = a(j) + 1
tup2:
For i = 0 To j - 1
If temp <= a(i) Then temp = a(i) + 1
Next i
Cells(4, 3) = j: Cells(4, 4) = temp
a(j) = temp
If j = tcom Then GoTo tprint
j = j + 1: temp = 1: GoTo tup2
tend:
MsgBox "정상적으로 종료되었습니다!"
End Sub
'Skills > Excel VBA' 카테고리의 다른 글
VBA 문자열 변동 또는 합계에 따라 행 삽입/일련 번호 (0) | 2008.11.13 |
---|---|
다른 값이 나올때마다 행과 일련번호를 삽입 (0) | 2008.11.13 |
화일명 자동 참조하여 데이터 가져오기 (0) | 2008.11.13 |
카운터 로직 (0) | 2008.11.13 |
합산 조합 구하기 (0) | 2008.11.13 |