VBA – 将列复制并粘贴到一个列,然后复制相应的标题x次

我的VBA技能是新鲜的,因为这是我一直在努力提高的。

我search了一些编码部分,但是我不能做我所需要的。 (每个栏代表Excel表格上的单元格

  • 我有一个标题在第1行的文件,这些标题是dynamic的;
    原始数据示例

  • 正如你所看到的,每个标题下面有一个随机的行数。

  • 目标是这样的: 结束excel文件的例子

我知道这并不复杂,但当我需要计数时,我正在挣扎,根据每个行的行数复制和粘贴标题。

问候。

假设您的数据在Sheet1并且您希望Sheet2结果尝试以下代码:

 Sub RangetoColumn() Dim lastRow As Long, lastColumn As Long Dim CurrentSheet As Worksheet, TargetSheet As Worksheet Dim i As Long, j As Long, Count As Long Dim colHeader As String Set CurrentSheet = ThisWorkbook.Worksheets("Sheet1") '-->sheet with data Set TargetSheet = ThisWorkbook.Worksheets("Sheet2") '-->sheet to display result lastColumn = CurrentSheet.Cells(1, Columns.Count).End(xlToLeft).Column Count = 1 For i = 1 To lastColumn lastRow = CurrentSheet.Cells(Rows.Count, i).End(xlUp).Row If lastRow > 1 Then '-->check for data below header colHeader = CurrentSheet.Cells(1, i).Value For j = 1 To lastRow - 1 TargetSheet.Range("A" & Count).Value = colHeader TargetSheet.Range("B" & Count).Value = CurrentSheet.Cells(j + 1, i).Value Count = Count + 1 Next j End If Next i End Sub