Excel 表格 - 使用 vba 进行转置



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

如果你看一下图片,我会试着解释我的斗争是什么。使用"转置",我设法使 A 列成为第 1 行。我需要 A 列保留为 A 列(请注意它们是合并的单元格(,并且我需要第 1 行保留为第 1 行。基本上我需要 B 列变成第 2 行,以及 % 数字来转置。

现在它看起来像这样: 源语言

我希望它看起来像这样: 想要的结果

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

你不应该试图做你所要求的。 您应该做的是更改 SPSS 中的枢轴。 将 A1/A2/A3 数据点从行更改为列。

你永远不应该自动化效率低下的问题,这对所有追随你并必须支持它的人来说都是令人困惑的。

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

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

最新更新