Excel 从范围到数据末尾的转换
我有这个代码,它必须转换数据。问题是,我不知道如何使它成为动态的,所以它可以转置比直到列“O”更多的内容。但是,如果有300行数据,它应该能够将这些数据向下转换到列中Excel 从范围到数据末尾的转换,excel,vba,Excel,Vba,我有这个代码,它必须转换数据。问题是,我不知道如何使它成为动态的,所以它可以转置比直到列“O”更多的内容。但是,如果有300行数据,它应该能够将这些数据向下转换到列中 Sub TransposeData() Range("A2:O15").Value = WorksheetFunction.Transpose(Range("A2:O8")) End Sub 我这里只有一个测试数据集,但当我添加超过15行的数据时,它无法将其转置到列“O”之外 数据集 转置后 试试看 Range("A2
Sub TransposeData()
Range("A2:O15").Value = WorksheetFunction.Transpose(Range("A2:O8"))
End Sub
我这里只有一个测试数据集,但当我添加超过15行的数据时,它无法将其转置到列“O”之外
数据集
转置后
试试看
Range("A2:O15").Value = Application.Transpose(Range("A2:O8"))
但是,这不起作用,因为目标范围与原始范围的大小不同。更好的方法是,将A2:O15的值
分配给一个数组,然后
Range("A2").Resize(Ubound(Arr,2), Ubound(Arr)).Value = Application.Transpose(Arr)
您可以使用这样的代码使A2:O15成为动态的
Dim Rng As Range
Dim Arr as Variant
Set Rng = Range(Cells(2, "A"), Cells(Rows.Count, "A").End(XlUp).Offset(0,15))
Arr = Rng.Value
您可以这样做,以更友好的方式:
Sub TransposeMe()
Dim myRange As Range
Set myRange = Range("A2:O15")
Dim destRange As Range
Set destRange = Range("A2")
Set destRange = destRange.Resize(myRange.Columns.Count, myRange.Rows.Count)
destRange.Value = Excel.Application.Transpose(myRange)
End Sub
谢谢,它可以工作,但我在第17行之后有很多数据,有没有办法在转置时删除它们?我刚刚添加了一个新的子工作表,但我想知道它是否可以在转置子工作表(“Ark1”)中。行(17&“:”&工作表(“Ark1”)。行。计数)。删除