如何在单列excel中的特定行中粘贴不同的列名称

时间:2014-02-18 13:21:15

标签: excel vba excel-vba excel-formula excel-2010

如何通过宏在Excel中的特定行中粘贴不同的列名。

例如:

我有10个不同的列,每列有10行数据。

我已经完成了在单个列中粘贴这10个列值的编码(例如:A列)(因此100行数据 - > 10行* 10列)但我需要将所有这10个列名称粘贴到B中与列值对应的行中的列。

在编码之前:

Name 1  Name 2  Name 3  Name 4
A       E       H       K
B       F       I       L
C       G       J       M

我的编码之后:

Name 1  Name 2  Name 3  Name 4
A           
B           
C           
E           
F           
G           
H           
I           
J           
K           
L           
M           

我现在期待的是什么!!

Name    Name Category
A       Name 1
B       Name 1
C       Name 1
E       Name 2
F       Name 2
G       Name 2
H       Name 3
I       Name 3
J       Name 3
K       Name 4
L       Name 4
M       Name 4

任何excel专家请帮帮我。提前致谢

1 个答案:

答案 0 :(得分:0)

试试这个。我已经在您的示例表上测试了以下代码,它似乎正在运行。

Sub VijayRamRaja()
Dim cols As Integer
cols = ActiveSheet.UsedRange.Columns.Count

For iCol = 2 To cols
    Dim tHead, tData, tNewS
    Set tHead = Cells(1, iCol)
    Set tData = Range(Cells(2, iCol), tHead.End(xlDown))
    tNewS = Range("A1").End(xlDown).Offset(1, 0).Address

    tData.Cut Range(tNewS)

    For Each iCell In Range(Range(tNewS), Range(tNewS).End(xlDown))
        iCell.Offset(0, 1).Value2 = tHead.Value2
    Next iCell

    tHead.Clear
Next iCol

For Each iCell In Range("B1", Range("B1").End(xlDown).Offset(-1, 0))
    iCell.Value2 = Range("A1").Value2
Next iCell

ActiveSheet.Rows(1).EntireRow.Delete

End Sub