使用VBA将列详细信息与重复列A组合在一起

时间:2016-08-29 17:57:21

标签: vba excel-vba excel

我有一个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代码吗? 谢谢!!!

1 个答案:

答案 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