무작위로 엑셀 VBA에서 데이터를 정렬
우리는 무작위로 데이터를 정렬 엑셀 VBA에서 프로그램을보고 아래 (이 예에서는 무작위로 이름을 정렬).
상황 :
-
먼저, 우리는 네 개의 변수를 선언합니다. 우리가 TempString 전화 String 형의 하나 개의 변수는 유형 정수의 하나 개의 변수는 우리가 TempInteger, 우리는 내가 전화 형 정수의 하나 개의 변수 및 유형 정수의 하나 개의 변수는 우리가 J를 호출 호출합니다.
Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
-
우리는 (각 이름에 대한 하나의) 열 B 5 개 난수를 작성합니다. 우리는이에 대한 워크 시트 함수 RANDBETWEEN를 사용합니다.
For i = 1 To 5 Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000) Next i
지금까지 결과 :
우리는 이름을 정렬 할 각 이름 옆에 숫자를 사용합니다. 제 최저 수, 두 번째로 낮은 번호와 이름, 초 등으로 이름
-
우리는 더블 루프를 시작합니다.
For i = 1 To 5 For j = i + 1 To 5
다음 코드 줄을 추가하십시오 :
If Cells(j, 2).Value < Cells(i, 2).Value Then
예 : 난을 1 J = 위해 = 2 웬디 리차드이 비교된다. 리처드는 낮은 숫자를 가지고 있기 때문에, 우리는 웬디와 리처드을 교환합니다. 리처드는 이제 첫 번째 위치에 있습니다. i가 1, J =를 들어 = 3, 주스 Richard와 비교한다.
아무 일도 발생하지 않도록 주스트는 더 높은 번호가 있습니다. 이 방법은, 엑셀 VBA는 첫 번째 위치에서 가장 낮은 번호의 이름을 가져옵니다. I = 2의 경우, 엑셀 VBA 등 번째 위치에서 두 번째로 낮은 번호 이름을 취득
-
true의 경우, 우리는스왑이름.
tempString = Cells(i, 1).Value Cells(i, 1).Value = Cells(j, 1).Value Cells(j, 1).Value = tempString
-
우리는 숫자를 교환합니다.
tempInteger = Cells(i, 2).Value Cells(i, 2).Value = Cells(j, 2).Value Cells(j, 2).Value = tempInteger
-
만약 문을 닫을 것을 잊지 마십시오.
End If
두 루프를 닫을 것을 잊지 마십시오 8..
Next j Next i
-
테스트 프로그램.
결과 :
참고 : 번호가 워크 시트에 배치되지 있도록, 그것은 배열에서 각 이름의 수를 배치하는 경우에도 좋네요 열 B의 번호를 삭제하는 라인을 추가 할 수 있습니다. 그러나, 예시 적 목적을 위해 우리는 시트에 값을 배치 할 선택했습니다.