팁 제목은 어떻습니까? 제목은 임의의 순서로 일련의 숫자로 셀 범위를 채워야 할 수 있다는 사실을 나타냅니다. 예를 들어 임의의 순서로 1에서 52까지의 숫자로 52 개의 셀을 채울 수 있습니다. (이것은 셔플 된 덱에서 카드를 뽑는 것과 유사하므로 팁 제목이됩니다.)

이 기능을 제공하는 기본 제공 Excel 함수는 분명히 없으므로 매크로 작업을 수행해야합니다. 다행히도 이러한 매크로는 작성하기가 그리 어렵지 않습니다. 다음 매크로는 트릭을 훌륭하게 수행합니다.

Sub FillRand()

Dim nums() As Integer     Dim maxval As Integer     Dim nrows As Integer, ncols As Integer     Dim j As Integer, k As Integer     Dim Ptr As Integer     Randomize

Set s = Selection     maxval = s.Cells.Count     nrows = s.Rows.Count     ncols = s.Columns.Count

ReDim nums(maxval, 2)



'Fill the initial array     For j = 1 To maxval         nums(j, 1) = j         nums(j, 2) = Int((Rnd * maxval) + 1)

Next j

'Sort the array based on the random numbers     For j = 1 To maxval - 1         Ptr = j         For k = j + 1 To maxval             If nums(Ptr, 2) > nums(k, 2) Then Ptr = k         Next k         If Ptr <> j Then             k = nums(Ptr, 1)

nums(Ptr, 1) = nums(j, 1)

nums(j, 1) = k             k = nums(Ptr, 2)

nums(Ptr, 2) = nums(j, 2)

nums(j, 2) = k         End If     Next j

'Fill in the cells     Ptr = 0     For j = 1 To nrows         For k = 1 To ncols             Ptr = Ptr + 1             s.Cells(j, k) = nums(Ptr, 1)

Next k     Next j End Sub

이 매크로는 2 차원 배열 (숫자)을 사용하여 사용할 숫자와 숫자를 사용해야하는 순서를 파악합니다. 매크로의 시작 부분에서 배열은 정적 숫자 (1에서 셀 수)와 1에서 셀 수 사이의 난수로 채워집니다. 이 두 번째 숫자는 배열을 정렬하는 데 사용됩니다. 배열이 저장되면 원래 숫자를 셀에 배치하는 것은 간단합니다.

그런데 2 차원 배열이 사용되는 이유는 VBA가 난수를 생성하는 데 사용하는 Rnd 함수가 중복 값을 반환 할 수 있기 때문입니다. 따라서 배열의 두 번째 차원을 통해서도 중복 항목이있을 수 있으며, 배열이 최종적으로 정렬되면 첫 번째 차원에는 중복 항목이 없습니다.

매크로를 사용하려면 임의의 순서로 순차적 값으로 채울 셀을 선택하십시오. 매크로를 실행하면 해당 범위가 채워집니다. 예를 들어, 10 개의 셀을 선택한 다음 매크로를 실행하면 해당 셀은 임의의 순서로 1부터 10까지의 숫자로 채워집니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶으면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2280)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Playing_with_a_Full_Deck [풀 덱으로 플레이].