VBA转置(逐步)|在VBA中转置的前2种方法

当我们将任何数据表粘贴到工作表时,我们已经在excel工作表中看到了转置函数,转置的作用是它更改了数据表中行和列的位置,即行变成了列,列变成了数据表中的行,因为它是工作表VBA中的函数,我们将其与VBA中的Application.worksheet方法一起使用。

如何在VBA中转置?

切换行和列是几乎所有用户都在excel中执行的数据处理技术之一。在Excel中,将水平数据转换为垂直数据并将垂直数据转换为水平数据的过程称为“转置”。我相信您必须在常规工作表中熟悉转置,在本文中,我们将向您展示如何在VBA编码中使用转置方法。

我们可以使用两种方法在VBA中进行转置。

  1. 使用TRANSPOSE公式进行转置。
  2. 使用“粘贴特殊方法”进行转置。

换位时,我们将行交换为列,将列交换为行。例如,如果数据为4 X 3阵列,则它将变为3 X 4阵列。

让我们看一些在VBA中将列转置为行的示例。

#1 –使用TRANSPOSE公式进行VBA转置

就像我们在excel中使用TRANSPOSE的方式一样,我们也可以在VBA中使用TRANSPOSE公式。 VBA中没有TRANSPOSE公式,因此我们需要在Worksheet Function类下使用。

例如,请看下面的数据图像。

我们将尝试转置此值数组。请按照以下步骤转置数据。

步骤1: 启动子过程

代码:

 Sub Transpose_Example1()结束Sub 

第2步: 首先,我们需要确定要在何处转置数据。在这种情况下,我选择了从单元格D1转置为H2。因此,输入VBA代码为 范围(“ D1:H2”)。值=

代码:

 Sub Transpose_Example1()Range(“ D1:H2”)。Value =结束Sub 

第三步: 现在在上述范围内,我们需要A1到B5范围的值。要到达此打开的“工作表功能”类,然后选择“转置”公式。

第4步: 精氨酸1 提供数据源范围,即 范围(“ A1:D5”).

代码:

 Sub Transpose_Example1()Range(“ D1:H2”)。Value = WorksheetFunction.Transpose(Range(“ A1:D5”))En​​d Sub 

好的,我们完成了TRANSPOSE公式编码。现在运行代码以查看单元格的D1到H2范围内的结果。

如上图所示,它已将单元格的范围从列转换为行。

#2 –使用粘贴特殊方法的VBA转置

我们还可以使用“选择性粘贴”方法进行转置。对于此示例,也请考虑相同的数据。

我们要做的第一件事是复制数据。所以写代码为 范围(“ A1:B5”)。复制

代码:

 Sub Transpose_Example2()Range(“ A1:B5”)。Copy End Sub 

接下来的事情是我们需要确定要粘贴数据的位置。在这种情况下,我选择了D1作为所需的目标单元格。

代码:

 Sub Transpose_Example2()Range(“ A1:B5”)。Copy Range(“ D1”)。结束子 

选择所需的目标单元格后,我们需要选择“粘贴特殊方法”。

使用特殊粘贴,我们可以在工作表中执行常规常规粘贴方法所具有的所有操作。

忽略所有参数并选择最后一个参数,即转置并将其设置为TRUE。

代码:

 Sub Transpose_Example2()Range(“ A1:B5”)。Copy Range(“ D1”)。PasteSpecial Transpose:=真结束Sub 

这也将像以前的方法一样转置数据。

这样,我们可以使用TRANSPOSE公式或“选择性粘贴”方法来转置数据以将行切换为列,将列切换为行。

要记住的事情

  • 如果我们使用的是TRANSPOSE工作表函数,则必须计算许多行和列以转置数据。如果我们有5行3列,那么在转置时变成3行5列。
  • 如果要在使用特殊粘贴时使用相同的格式,则必须使用“粘贴类型”参数作为“ xlPasteFormats”

您可以从此处下载此VBA转置Excel模板– VBA转置Excel模板