나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 참서리 (k5953)

추천:  2
파일:     택배 자료 재 정렬.xlsm (31KB) 조회:  903
제목:   [RE]택배 배송 정로 재정렬
     
 

Option Explicit

'--------------------
Sub reArrange()
'--------------------


    Dim vPositions As Variant
    vPositions = Array( _
                                    "1/1", "1/2", "1/3", "1/5", "1/7", "1/8", "1/9", "1/11", "1/13", _
                                    "2/1", "2/2", "2/3", "2/5", "2/7", "2/8", "2/9", "2/11", "2/13", _
                                    "3/1", "3/2", "3/3", "3/5", "3/7", "3/8", "3/9", "3/11", "3/13", _
                                    "4/1", "4/2", "4/3", "4/5", "4/7" _
                                    )
    
    'Dim colX As Collection: Set colX = New Collection
    Dim oList As Object: Set oList = CreateObject("System.Collections.ArrayList")
    
    Dim vRow As Variant: ReDim vRow(UBound(vPositions))
    Dim j As Long
    Dim rStart As Range:
    Dim rX As Range
    Dim vX As Variant, vY As Variant
    
     Set rStart = Range("A9")
     
    '-----------------------------
    Do Until rStart.Value = ""
    '-----------------------------
    
        Set rX = Range(rStart, rStart.Offset(, 14)).Resize(4)
        vY = rX.Value '2d Array
        
        '-------------------------------------------
        For j = LBound(vPositions) To UBound(vPositions)
        '-------------------------------------------
                vX = Split(vPositions(j), "/")
                vRow(j) = vY(vX(0), vX(1))
        Next
       
        oList.Add vRow
       
        Set rStart = rStart.Offset(4)
    
    '-----------------------------
    Loop
    '-----------------------------
    
    'Stop
    
    Dim shtX As Worksheet
    Set shtX = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    
    'shtX.Name = "Result"
    Dim rngX As Range: Set rngX = shtX.Range("A1")
    Dim vResult As Variant:
    
    vResult = WorksheetFunction.Transpose(WorksheetFunction.Transpose(oList.toarray))
    
    rngX.Resize(UBound(vResult, 1), UBound(vResult, 2)).Value = vResult
    
    With rngX.CurrentRegion
            .EntireColumn.AutoFit
            .NumberFormat = "0"
    End With
    
    shtX.Columns("I:I").NumberFormat = "000-0000-0000"
    shtX.Columns("R:R").NumberFormat = "000-0000-0000"
    
End Sub
 
[불량 게시물 신고]  
참서리다음 유튜브 동영상에 자세히 설명되어 있습니다.
https://youtu.be/WEhiv-D2KEg
04-20 (01:45)
삭제 ■신고
        
  

작성일 : 2019-04-20(01:39)
최종수정일 : 2019-04-20(01:39)
 


 ◎ 관련글

  제 목   작성자   날짜
다른 시트에서 값가져오기 할때 노가다 없이 서식으로 셀값 가져오는 방법 케이아스 2018-09-26
[RE]택배 배송 정로 재정렬 참서리 2019-04-20
[RE]다른 시트에서 값가져오기 할때 노가다 없이 서식으로 셀값 가져오는 dew 2018-09-27