如何在 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 函数