RANGE 함수를 확장한다.

5696 단어 VBAExcelInsider
Range 함수는, 테이블명, 범위, 스필 범위 연산자등의 캐릭터 라인을 인수로서 사용할 수 있으므로, 무엇인가 편리합니다.
그러나 Range("M01N_[number,O,W]")처럼 열을 추출하여 테이블을 만들 수 없습니다.
Range("M01N_[번호]")와 같은 열이나 Range("M01N_[[번호]:[O]]")와 같이 열 순서가 연속해야 합니다.
그래서 함수 Range_로 재정의했습니다.
Function Range_(R, Optional S = "")
    On Error Resume Next

    If TS_(R) Then
        If InStr(R, ",") > 0 And InStr(R, "[") > 0 And InStr(R, "]") = Len(R) Then
            A = Split(Left(R, Len(R) - 1), "[")
            B = Split(A(1), ",")
            A = A(0)

            M = Range(A).Rows.Count
            N = UBound(B) + 1

            ReDim S(0 To M, 1 To N)

            For J = 1 To N
                S(0, J) = B(J - 1)         
                R = CC(A, "[", B(J - 1), "]")
                For I = 1 To M
                    S(I, J) = DI(R, I)
                Next I
            Next J
        Else
            S = Range(R)
        End If
    Else
        S = R
    End If
    Range_ = S
End Function

(A1) =Range_("M01N_[번호,O,W]")의 결과는 아래와 같다. 서식은 적당하게 바꾸고 있습니다.

좋은 웹페이지 즐겨찾기