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