我正在尝试获取一列并将其转置为一行。我知道这可以通过数据透视表和/或常规复制和粘贴来完成,但是我需要将其合并到宏中。
值也可以按时间顺序排序吗?
之前:
目标:
答案 0 :(得分:2)
您手动执行此操作,将使用选择性粘贴->转置。因此,尝试:
Sub Macro1()
Range("F4:F15"). Select
Selection.Copy
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
End Sub
要按时间顺序对其进行排序,请尝试以下操作:Order1:=xlAscending
避免选择:
Sub CopyTransposed(rngSource As Range, rngTargetCell As Range)
rngTargetCell.Resize(rngSource.Columns.Count, rngSource.Rows.Count).Value = _
Application.WorksheetFunction.Transpose(rngSource)
End Sub
Sub test()
CopyTransposed [A1:A100], [C1]
'or
'CopyTransposed Sheets("SourceSheet").Range("A1:A4"), Sheets("TargetSheet").Range("C1")
End Sub
您注意到您可以通过两种方式呼叫CopyTransposed
:
CopyTransposed [A1:A100], [C1]
CopyTransposed Sheets("SourceSheet").Range("A1:A4"), Sheets("TargetSheet").Range("C1")