|
'-----------------------------------------
' 사용자 정의 함수
'-----------------------------------------
----------------------------------
' 결과가 배열이므로
' 배열 처리(Ctrl + Shift +Enter)
' 해야만 합니다.
'----------------------------------
'---------------------------------------------------------------
Function arrange_number(rngX As Range) As Variant
'---------------------------------------------------------------
Dim data As Variant
data = Application.Transpose(rngX.Value)
Dim result As Variant: result = Array()
Dim imax As Long: imax = UBound(data, 1)
'------------------------------------
For i = 1 To imax - 1
'------------------------------------
If data(i) + 1 = data(i + 1) Then
c = 1
'---------------------------------------
Do
c = c + 1
i = i + 1
If imax = i Then Exit Do
Loop While data(i) + 1 = data(i + 1)
'---------------------------------------
' add data
For j = 1 To c
result = push(result, c)
Next j
Else
result = push(result, "")
End If
'---------------------------------------
Next i
'---------------------------------------
arrange_number = Application.Transpose(result)
End Function
'----------------------------------------------------------
Function push(col As Variant, data As Variant) As Variant
'----------------------------------------------------------
Dim i As Long: i = UBound(col, 1) + 1
ReDim Preserve col(i)
col(i) = data
push = col
End Function
|
|