/ Excel VBA에서 숫자 정렬

Excel VBA에서 숫자 정렬

아래에서 우리는 Excel VBA숫자를 정렬.

상태:

숫자 예제 정렬

워크 시트에 명령 단추를 놓고 다음 코드 줄을 추가하십시오.

1. 먼저 Integer 유형의 변수와 Range 객체를 선언합니다.

Dim i As Integer, j As Integer, temp As Integer, rng As Range

2. Range 객체 rng를 A 열의 숫자로 초기화합니다.이 작업에는 CurrentRegion 속성을 사용합니다. CurrentRegion은 범위의 정확한 경계를 미리 알지 못하는 경우 유용합니다 (이 프로그램은 9 개의 숫자뿐만 아니라 90 개의 숫자에도 적용되기를 원합니다).

Set rng = Range("A1").CurrentRegion

3. For Next 루프 두 개를 시작합니다.

For i = 1 To rng.Count
    For j = i + 1 To rng.Count

설명 : rng.Count는 9이므로 처음 두 코드 행은 i = 1에서 9로, j = i + 1에서 9로 줄입니다. i = 1, j = 2, 3, ..., 8 및 9 확인됩니다.

4. 숫자를 올바르게 정렬하기 위해 첫 번째 숫자와 다음 숫자를 비교합니다. 다음 숫자가 더 작 으면 숫자를 바꿉니다. If Then 문을 추가하십시오.

If rng.Cells(j) < rng.Cells(i) Then

End If

위의 진술이 사실이라면, 우리는 숫자를 교환합니다.

예 : i = 1 및 j = 2 인 경우 숫자 2와 10이 비교됩니다. 위의 진술은 사실이 아닙니다. 따라서 숫자를 바꿀 필요가 없습니다. Excel VBA는 j를 1 씩 증가시키고 i = 1 및 j = 3에 대해 코드 줄을 반복합니다. 5가 2보다 크다는 것을 쉽게 볼 수 있으므로 숫자를 바꿀 필요가 없습니다. 우리는 j = 4, j = 5 및 j = 6에 대해 동일한 결과를 얻습니다. j = 7에 도착하면 1이 2보다 작기 때문에 위의 진술이 참입니다.

5. 번호를 교환합니다. 임시로 하나의 번호를 저장하므로 Excel VBA는 숫자를 올바르게 바꿀 수 있습니다. If 문에 다음 코드 행을 추가하십시오.

"swap numbers
temp = rng.Cells(i)
rng.Cells(i) = rng.Cells(j)
rng.Cells(j) = temp

6. 두 번째 For Next 루프 (If 문 외부)를 닫습니다.

Next j

i = 1 및 j = 7 인 경우 Excel VBA는번호. 이것은 첫 번째 위치에서 1을 얻고 7 위치에서 2를 얻음을 의미합니다. 첫 번째 위치에 1이 있으므로 이제이 값을 5 (j = 8) 및 4 (j = 9)와 비교합니다. 숫자를 바꿀 필요가 없습니다 (1이 가장 작은 숫자 임). 이렇게하면 Excel VBA는 첫 번째 위치에서 가장 작은 숫자를 가져옵니다 (i = 1). 두 번째 위치에서 두 번째로 작은 숫자를 얻으려면 Excel VBA는 i = 2에 대해 똑같은 단계를 반복합니다. 세 번째 위치에서 세 번째로 작은 숫자를 얻으려면 Excel VBA가 i = 3 등의 동일한 단계를 반복합니다.

7. 첫 번째 For Next 루프를 닫습니다 (If 문 외부).

Next i

8. 프로그램을 테스트하십시오.

결과:

Excel VBA에서 숫자 정렬

또한 읽으십시오 :