我拥有的东西:我有很多小数据表(松散地说,不是“真正的”表)组织的数据一个接一个地放在两个< / strong>一个和下一个之间的列。这些“表格”全部由六个列和变量行数组成。表格从单元格A1开始。因此,例如,第一个表占据列A到F,第二个表占用N到N,依此类推。
我需要什么:我需要将所有这些表放在另一个之下,以创建可导出到统计软件的数据库,以便进一步分析。我需要的脚本应该取第二个表并剪切(或复制)并将其粘贴到第一个表格的下方,两者之间没有空白行。然后进入第三个并将其粘贴到第二个之下,依此类推。
我从未与VBA合作,但我需要一些东西来自动化这个过程,因为手工操作需要很多天。我用C ++和R编程,所以如果你能给我一些指导,我可以尝试将它放在一个VBA脚本中。
非常感谢。
答案 0 :(得分:1)
我已经复制了你的表,所以它看起来像这个
然后我写了代码来完成这样的事情
我认为这就是你要找的东西,下面是代码
Sub Main()
Dim ws As Worksheet
Set ws = Sheets("Sheet1") ' rename sheet
Dim i&, j&
Dim curHead As String
Dim nextHead As String
For i = 1 To 3
curHead = CStr(ws.Cells(1, i).Text)
For j = 4 to ws.Cells(1, Columns.Count).End(xlToLeft).Column
nextHead = CStr(ws.Cells(1, j).Value)
If StrComp(curHead, nextHead, vbTextCompare) = 0 Then
ws.Range(Cells(2, j), Cells(ws.Cells(Rows.Count, j).End(xlUp).Row, j)).Copy
ws.Cells(ws.Cells(Rows.Count, i).End(xlUp).Row + 1, i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Next j
Next i
End Sub