|
|
|
|
|
|
https://youtu.be/6YRCRMEHZoQ
'소스 코드
Option Explicit
'---------------------------
Sub random_number()
'---------------------------
MsgBox "난수를 발생시킵디다."
Dim iStart As Long, iEnd As Long
' 시작 수/ 끝 수
iStart = Range("B3").Value
iEnd = Range("C3").Value
' 난수 얻기
Dim arr As Variant: arr = get_rnd(iStart, iEnd)
' 난수 배열 시트에 붙여넣기
With Range("B6")
.CurrentRegion.ClearContents
.Resize(iEnd - iStart + 1, 1).Value = WorksheetFunction.Transpose(arr)
End With
End Sub
'-----------------------------------------------------------------------------------------------
Function get_rnd(iStart As Long, iEnd As Long) As Variant
'-----------------------------------------------------------------------------------------------
'저장할 배열 선언
Dim vR() As Variant: ReDim vR(iStart To iEnd)
Dim i As Long
' 배열에 담기
For i = iStart To iEnd
vR(i) = i
Next i
Dim iRnd As Long, x As Long
Dim vTemp As Variant
' 끝에서 부터 처음까지 역으로 숫자 섞기
'---------------------------------------------
For i = iEnd To iStart Step -1
x = Int(VBA.Rnd * (i - iStart + 1) + iStart)
vTemp = vR(i)
vR(i) = vR(x)
vR(x) = vTemp
Next i
'---------------------------------------------
'Debug.Print Join(vR, ",")
get_rnd = vR
'-------------------------------------
End Function
'-------------------------------------
|
|
[불량 게시물 신고] |
|
|
|
작성일 : 2019-04-04(02:15)
최종수정일 : 2019-04-04(02:21) |
|
|
|
|