2017-02-07 6 views
0

私はツリービューにデータを持ち、それを表形式に変換するためにリンクします。例えば:Excelのテーブルへのツリービュー

利用可能なデータ

利用できるフォーマット:
enter image description here

必要な形式:

enter image description here

+0

これは1回限りの処理ですか?もしそうなら、手で行う方が簡単かもしれません。そうでない場合 - 細胞は合併されていますか?そうであれば、おそらくVBAを使用して簡単にツリーを繰り返し処理し、新しい形式を作ることができます。 – Benjamin

+0

あなたのお返事ありがとうございます。残念ながら、このテーブルだけではなく、シフトする必要があるシートには大きな数があります。手作業はできません。 –

答えて

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 
関連する問題