我是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
.... ....
然后我必须对此表进行后期处理,但我知道如何制作它。我不知道如何生成表格。
答案 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中的一个重要习惯用法,应该掌握。