본문 바로가기
WeekdayLife/excel

[엑셀VBA] 랜덤 셀선택 값 표시

by JO_i 2018. 2. 23.

가끔 뽑기를 엑셀로 만들때가 있다.

워크시트 함수로 만들면, 랜덤함수는 셀계산을 매번하는데, VBA로 만들면, 이를 방지할 수 있다.

예를 들어, 몇 개의 숫자가 있고, 이를 임의로 가져오는 방법을 함수와 VBA로 만들어 봤다.

 

 

 

여러가지 방법이 있겠으나, 함수로 쓰면 대략 이런 모양이 되지 않을까?

="선택한 값은 "& TEXT(OFFSET(D5,0,RANDBETWEEN(0,10)),"#,###") &" 입니다."

 

이번에는 VBA로 RANDBEETWEEN 함수를 OFFSET과 함께 사용했다. 별 건 없다. 

여기에 기준셀을 선택하는 인풋창을 넣어두면 더 사용하기 편할 수 있겠지만 귀찮아서 패스.

 

[코드샘플]

 

Sub choice_value()
 
Dim x As Integer
Dim y As Integer
Dim a As String
Dim b As String
Dim CL As Range
 
x = 0
Set CL = Range("D5")
y = CL.End(xlToRight).Column - CL.Column
 
a = "선택한 값은 "
b = " 입니다."
 
Range("d9").Value = a & Format(CL.Offset(x, WorksheetFunction.RandBetween(x, y)), "#,###") & b
 
End Sub