我有一个excel表格,格式如下:
titleA titleB titleC
a 300 400
b 300
c 50 20
我希望将titleB和titleC列合并为一个列(titleB),以便最终表格为:
titleA titleB
a 300
a 400
b 300
c 50
c 20
你能告诉我一些允许我这样做的VBA代码吗? 谢谢!!!
答案 0 :(得分:0)
假设您的数据位于“A:C”列中,标题位于第1行,您可以尝试以下代码:
Sub main()
With Worksheets("unpivot") '<--| change it to your actual worksheet name
With .Range("A2", .Cells(.Rows.Count, "A").End(xlUp))
.Offset(.Rows.Count).value = .value
.Offset(.Rows.Count, 1).value = .Offset(, 2).value
.Offset(-1, 2).Resize(.Rows.Count + 1).ClearContents
With .Offset(, 1).Resize(2 * .Rows.Count)
If WorksheetFunction.CountBlank(.Cells) > 0 Then .SpecialCells(XlCellType.xlCellTypeBlanks).EntireRow.Delete
End With
.Resize(2 * .Rows.Count, 2).Sort key1:=.Range("A1"), Order1:=xlAscending, Header:=xlNo
End With
End With
End Sub