如何在 vba 中转置范围(带有示例)


您可以使用以下基本语法通过 VBA 转置范围:

 SubTransposeRange ()

    'specify range to transpose
    MyRange = Range(" A1:B5 ")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

此特定示例将转置A1:B5范围内的单元格,并显示从单元格D1开始的转置范围。

以下示例展示了如何在实践中使用此语法。

示例:如何在 VBA 中转置范围

假设我们在 Excel 中有以下数据集,其中包含有关各种篮球运动员的信息:

假设我们要转置范围 A1:B5 并显示从单元格D1开始的转置范围。

我们可以创建以下宏来执行此操作:

 SubTransposeRange ()

    'specify range to transpose
    MyRange = Range(" A1:B5 ")
    
    'find dimensions of range
    XUpper = UBound(MyRange, 1)
    XLower = LBound(MyRange, 1)
    YUpper = UBound(MyRange, 2)
    YLower = LBound(MyRange, 2)
    
    'transpose range
    Range(" D1 ").Resize(YUpper - YLower + 1, XUpper - XLower + 1).Value = _
      WorksheetFunction.Transpose(MyRange)
      
End Sub

当我们运行这个宏时,我们会收到以下输出:

请注意,转置范围从单元格D1开始显示。

换句话说,行和列颠倒了。

要转置不同的范围,只需将宏中的A1:B5替换为不同的范围即可。

注意:您可以在此处找到 VBA Transpose方法的完整文档。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何计算具有特定文本的单元格
VBA:如何计算范围内的行数
VBA:如何编写 COUNTIF 和 COUNTIFS 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注