우리는 무작위로 데이터를 정렬 엑셀 VBA에서 프로그램을보고 아래 (이 예에서는 무작위로 이름을 정렬).

상황 :

Randomly Sort Data in Excel VBA

  1. 먼저, 우리는 네 개의 변수를 선언합니다. 우리가 TempString 전화 String 형의 하나 개의 변수는 유형 정수의 하나 개의 변수는 우리가 TempInteger, 우리는 내가 전화 형 정수의 하나 개의 변수 및 유형 정수의 하나 개의 변수는 우리가 J를 호출 호출합니다.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer
  1. 우리는 (각 이름에 대한 하나의) 열 B 5 개 난수를 작성합니다. 우리는이에 대한 워크 시트 함수 RANDBETWEEN를 사용합니다.

For i = 1 To 5

Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000)

Next i

지금까지 결과 :

Result so far

우리는 이름을 정렬 할 각 이름 옆에 숫자를 사용합니다. 제 최저 수, 두 번째로 낮은 번호와 이름, 초 등으로 이름

  1. 우리는 더블 루프를 시작합니다.

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 등 번째 위치에서 두 번째로 낮은 번호 이름을 취득

  1. true의 경우, 우리는스왑이름.

tempString = Cells(i, 1).Value

Cells(i, 1).Value = Cells(j, 1).Value

Cells(j, 1).Value = tempString
  1. 우리는 숫자를 교환합니다.

tempInteger = Cells(i, 2).Value

Cells(i, 2).Value = Cells(j, 2).Value

Cells(j, 2).Value = tempInteger
  1. 만약 문을 닫을 것을 잊지 마십시오.

End If

두 루프를 닫을 것을 잊지 마십시오 8..

Next j

Next i
  1. 테스트 프로그램.

결과 :

Randomly Sort Data Result

참고 : 번호가 워크 시트에 배치되지 있도록, 그것은 배열에서 각 이름의 수를 배치하는 경우에도 좋네요 열 B의 번호를 삭제하는 라인을 추가 할 수 있습니다. 그러나, 예시 적 목적을 위해 우리는 시트에 값을 배치 할 선택했습니다.