Excel表格-使用VBA转置

时间:2018-08-20 14:23:08

标签: excel vba transpose

我对VBA领域还很陌生,所以请原谅这可能是一个非常简单的问题。

如果您查看图片,我会尽力解释我仍然在挣扎。使用“转置”,我设法使列A成为行1。​​我需要将列A保留为列A(注意它们是合并的单元格),并且我需要行1保持为行1。基本上,我需要列B转到第2行,然后选择要转置的%数字。

现在看起来像这样: original

我希望它看起来像这样: wanted result

原始表比示例大得多...

2 个答案:

答案 0 :(得分:1)

您不应尝试执行您要问的事情。您应该做的就是改变SPSS中的枢纽。将您的A1 / A2 / A3数据点从行更改为列。

您永远都不要使低效率自动化,这对于所有追随您并需要支持它的人来说都是一个困惑。

答案 1 :(得分:0)

一种非常基本的方法是转置复制粘贴,这是基本代码:

Sub TransposeColToRow()
' TransposeColToRow Macro
Range("B3:B14").Select
Selection.Copy
Range("B20").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
End Sub

您可能可以测试类似的东西,以查看是否刮擦了痒。可以通过避免如下所示的“选择”来改进(假设“复制”范围位于名为“ Sheet 1”的工作表上,而“粘贴”范围位于名为“ Sheet2”的工作表上-当然,这些都需要反映电子表格的真实性):

Dim CopyRange as Range: Set CopyRange = ThisWorkbook.Worksheets("Sheet1").Range("B3:B14")
Dim PasteRange as Range: Set PasteRange = ThisWorkbook.Worksheets("Sheet2").Range("A2:M2")

CopyRange.Copy
PasteRange.PasteSpecial Paste:=xlPasteAll, Transpose:=True