如何将行更改为列

时间:2013-11-18 07:57:46

标签: excel excel-vba vba

我是excel宏的新手。我的要求是:

对于具有多行的单列的给定矩阵,我需要将此行更改为下一页中的列(表示为sheet2)。

Col1
xyz
pqr
abc

这需要在sheet2中更改行,如下所示:

xyz    pqr    abc

这就是我的尝试:

Sub rowToCol()
    Dim i As Integer
    Dim n As Integer
    n = Application.WrokSheetFunction.CountIf(Range("A2:A4"), "Col1")

    For i = 1 To n
       Sheet2.Cells(i, 1) = Sheeti.Cells(1, i)
    Next
End rowToCol

2 个答案:

答案 0 :(得分:0)

简单录制的转置宏。

Sub Macro2()

    ActiveWorkbook.Sheets(1).Select
    Range("A" & 2).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy


    ActiveWorkbook.Sheets(2).Select
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
End Sub

答案 1 :(得分:0)

除非严格要求,否则避免Select对象/范围总是很方便。因此,您将使用对这些对象/范围的引用,在您的情况下为

Sub trnsp()
    Dim rng1 As Range, rng2 As Range
    Set rng1 = Worksheets("Sheet1").Range("A2:A4")
    rng1.Copy
    Set rng2 = Worksheets("Sheet2").Range("A1")
    rng2.PasteSpecial Paste:=xlPasteAll, Transpose:=True
End Sub

您可以根据需要更改工作表名称和范围。