2016-04-12 15 views
-1

私はVBAの新機能です。ExcelでVBAでテーブルを生成

私はこのような列Bの列AでTEXTとNUMBERを持っている:私はこれがyou.My問題の困難な問題ではないことを願っています

Column A Column B 
TEXT 1  3 
TEXT 2  2 
TEXT 3  3 
.....  ... 

私は、テーブルを自動生成する必要があります2つの列を有する他のシート。最初にn回繰り返されるテキスト(列BのNUMBER)と列Aの次のテキストが含まれています。この表の2番目の列には、1からNUMBERの番号が必要です。

Column A Column B 
TEXT 1  1 
TEXT 1  2 
TEXT 1  3 
TEXT 2  1 
TEXT 2  2 
TEXT 3  1 
TEXT 3  2 
TEXT 3  3 
....  ....  

次に、このテーブルを後処理する必要がありますが、作成方法はわかります。私はテーブルを生成する方法を知らない。私のコメントに拡大

+2

何か試しましたか?自然な選択は、第2のシートの2つの列を内側のループに入れながら、第2のシートの行を指し示すカウンタ変数を維持しながら、第1のシートの列Aの関連するセルにループすることである。書かれている。 –

答えて

2

Sub MakeTable() 
    Dim i As Long, j As Long, k As Long, m As Long, n As Long 
    Dim t As String 
    Dim ws As Worksheet 

    Sheets(1).Activate 
    Set ws = Sheets(2) 
    n = Cells(Rows.Count, 1).End(xlUp).Row() 

    k = 1 
    For i = 1 To n 
     t = Cells(i, 1).Value 
     m = Cells(i, 2).Value 
     For j = 1 To m 
      ws.Cells(k, 1).Value = t 
      ws.Cells(k, 2).Value = j 
      k = k + 1 
     Next j 
    Next i 
End Sub 

これは、元のデータがSheet1の中で、あなたがSheet2のに転送され、そしてそれらの仮定が偽であればそれに応じて調整します。1.データが行で始まることをすることを前提としています。データを持つ列Aの最後のセルを決定する方法は、Excel VBAの重要なイディオムであり、習得する必要があります。

+0

うん。どうもありがとうございました。それは素晴らしい仕事です。実際、これは簡単な作業ですが、私はVBAの新機能です。テーブル作成(FORループ)が問題ではなかったので、私はMATLABをよく知っています。しかし、コードの初期の構文は。もう一度ありがとう。 –

関連する問題