在Excel中通过VBA生成表

时间:2016-04-12 11:07:34

标签: excel vba excel-vba

我是VBA的新人。我希望这对你来说不是一个难题。我的问题:

我在列A中有TEXT,在列B中有NUMBER。像这样:

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

我需要在其他工作表中自动生成一个包含两列的表。首先包含重复n次的文本(B列中的NUMBER),然后是A列中的下一个文本。在此表的第二列中,我需要从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
....        ....      

然后我必须对此表进行后期处理,但我知道如何制作它。我不知道如何生成表格。

1 个答案:

答案 0 :(得分: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中的一个重要习惯用法,应该掌握。