본문 바로가기
카테고리 없음

[vba] 쇼핑몰에서 다운로드한 주문서의 상품명을 원하는 형태로 한 번에 쉽게 정리

by IT HUB 2020. 9. 8.
728x90
반응형

사진과 같이 다운받은 주문서의 상품명이 C열에 있습니다.
다운받은 주문서의 상품명을 D열처럼 정리하고자 합니다.

네이버 지식인 질문 내용입니다.

 

-액셀로 다운받은 주문서를 정리 하려고 합니다.

-"예시" 라고 되어 있는 시트에서 "결과값" 이라고 되어 있는 시트로 변환되었으면 합니다.

-"예시"시트에 보시면 문장 맨앞에 랜덤한 문자열이 항상 존재 합니다. 그리고 특정 상품들이 대괄호([])안에 적혀 있습니다.

-하나의 제품만 있으면 '#' 기호가 없지만, 여러개의 제품들을 산 사람이 있다면 '#' 기호로 구분되어 집니다.

-만약 '(랜덤한문자열) [콜라#사이다#오렌지] -n개' 이러한 문장이 있을때, 파일에서와 같이 '(랜덤한문자열) 콜라 -n개#사이다 -n개#오렌지 -n개' 이런식으로 몇개를 샀는지에 따라, #기준으로 각각의 문장에 -n개가 분배되었으면 좋겠습니다.

 

아래 매크로로 한방에 해결됩니다.

Sub program1472_com()
    Dim C As Range
    Dim V As Variant, s As Variant, t As String
    For Each C In Range(Cells(23), Cells(Rows.Count, 3).End(3))
        V = Split(Replace(Replace(C, "[", vbCrLf), "]", vbCrLf), vbCrLf)
        V(2= Abs(Val(Trim(V(2))))
        t = ""
        For Each s In Split(V(1), "#")
            If Len(t) Then t = t & "#"
            t = t & s & "-" & V(2& "개"
        Next
        C.Next = V(0& t
    Next
End Sub
 

 

반응형


댓글