2017-02-07 2 views
0

나는 Treeview에있는 데이터를 가지고 있으며 테이블 형식으로 변환하기 위해 링크 할 것입니다; 예를 들어 :Excel에서 테이블로 트리보기

가능한 데이터

가능한 형식 :
enter image description here

필수 형식 :

enter image description here

+0

일회성 처리입니까? 그렇다면 손으로하는 것이 더 쉬울 수도 있습니다. 그렇지 않다면 - 세포가 합쳐 졌습니까? 그렇다면 VBA를 사용하여 쉽게 트리를 반복하고 새로운 형식을 만들 수 있습니다. – Benjamin

+0

귀하의 답변에 대해 Benjamin에게 감사드립니다. 불행히도이 테이블뿐만 아니라 이동해야하는 시트에 많은 수가 있습니다. 수동 작업은 불가능합니다. –

답변

0

이 문제를 해결하기 위해 어떤 노력을 했습니까? 일반적으로 이런 게시물을 만들고 지금까지 시도한 것을 공유하는 것이 가장 좋습니다. 당신이 질문을 제기 한 방식은 "여기 내 문제가 있습니다. 제발 해결해주세요"입니다. 특정 질문에 대한 도움을 받기 위해 포럼에 오는 것보다 컨설턴트를 고용하는 것이 더 낫습니다. 또한 스크린 샷이 아닌 샘플 데이터를 제공해주십시오.

당신이 시작하게 될 몇 가지 코드의 시작입니다 (완료되지 않았습니다!). 나는 당신의 데이터가 어떻게 생겼는지, 그리고 당신의 특정한 요구 사항이 산출물에 어떻게 포맷되어 있는지 알지 못하지만, 적어도 당신은 다양한 컬럼을 반복 할 수있을 것이다.

다시 말하지만이 코드를 수정하여 필요에 맞게 수정해야합니다. 문제를 해결하기 위해 으로 시작하는 것을 의미합니다. 행운을 빕니다!

Sub convertTreeView() 

    Dim i(1 To 5) As Long  'iterators for each column (A to E) 
    Dim j As Long    'iterator for Output Worksheet 
    Dim ws As Worksheet   'Tab where TreeView exists 
    Dim outWS As Worksheet  'Output data on this tab 

    'set ws = application.Workbooks("").Worksheets("") 'Fill this is with your workbook/worksheet name 
    'set outWS = application.Workbooks("").Worksheets("") 'Fill this is with your workbook/worksheet name 

    Set ws = Sheet1 
    Set outWS = Sheet2 
    j = 1 
    For i(1) = 1 To ws.UsedRange.Rows.Count 
     Debug.Print i(1) 
      If ws.Cells(i(1), 1) <> "" Then  'New level 1 
       'Add new row to outws 
       j = j + 1 
       outWS.Range("A" & j).Value = ws.Cells(i(1), 1) 

       'Add Level 2 
       outWS.Range("B" & j).Value = ws.Cells(i(1), 2) 

       'Add multiple Level 3 
       'INSERT CODE HERE 

      End If 'ws.cells(i(1), 1) <> "" 

    Next i(1) 

End Sub 
관련 문제