我是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
答案 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
您可以根据需要更改工作表名称和范围。