숫자 섞는 매크로
13개의 숫자 중 3개만 출력함. 반복되지 않게
Option Explicit Private varOut(1 To 3) As Double Sub Macro() Dim i As Integer Dim j As Integer Dim varIn As Variant Dim rnG As Range varIn = Application.Transpose(Selection) Selection.Offset(, 3).CurrentRegion.ClearContents For Each rnG In Selection For i = 1 To 3 Do j = Int((UBound(varIn) - LBound(varIn) + 1) * Rnd + LBound(varIn)) Loop While InArray(varIn(j)) varOut(i) = varIn(j) Next i rnG.Offset(, 3).Resize(, 3) = varOut Next rnG Selection.Offset(, 3).CurrentRegion.NumberFormat = "0.00%" End Sub Function InArray(vaR As Variant) As Integer On Error GoTo j InArray = Application.Match(vaR, varOut, 0) On Error GoTo 0 j: End Function | cs |
'VB(A)' 카테고리의 다른 글
두가지 조건을 만족하는 값 나열 (0) | 2015.10.16 |
---|---|
체크박스로 시트 보호 해제 및 셀 잠금 해제 (0) | 2015.10.14 |
엑셀 2010 이상 이미지 삽입 (0) | 2015.09.22 |
맨 앞의 값만 가져오기 (0) | 2015.09.15 |
Dictionary (0) | 2015.09.12 |