Excel VBA转换会导致多个条目
因此,我尝试将包含两行238列的数据转换为一个列表(两列238行),然后我可以对该列表进行过滤,以删除旁边有单元格且没有值的行。对于VBA,我是个新手,所以我花了一段时间才让代码为转置函数工作,但当我最终将数据转置时,每列变成两个重复行(而不是一个),当它到达最后一个类别(原始配置中的最后一列)时,重复的行将持续大约300行。我不确定哪里出了问题,但我希望问题是显而易见的,这样有人可以给我一个快速的答案哈哈 以下是我的代码:Excel VBA转换会导致多个条目,vba,excel,Vba,Excel,因此,我尝试将包含两行238列的数据转换为一个列表(两列238行),然后我可以对该列表进行过滤,以删除旁边有单元格且没有值的行。对于VBA,我是个新手,所以我花了一段时间才让代码为转置函数工作,但当我最终将数据转置时,每列变成两个重复行(而不是一个),当它到达最后一个类别(原始配置中的最后一列)时,重复的行将持续大约300行。我不确定哪里出了问题,但我希望问题是显而易见的,这样有人可以给我一个快速的答案哈哈 以下是我的代码: Sub Transpose() ThisWorkbook.Works
Sub Transpose()
ThisWorkbook.Worksheets("Training List by Position").Range("A4:B10000").Clear
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
Set Range1 = ActiveWorkbook.Worksheets("Training List by Position").Range("A1:IB2")
Set Range2 = ActiveWorkbook.Worksheets("Training List by Position").Range("A4:B300")
columnIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Columns
Rng.Copy
Range2.Offset(columnIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
columnIndex = columnIndex + Rng.Rows.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
我认为你把这件事复杂化了一点——为什么你需要更多的东西呢
Range("A1:IB2").Copy
Range("A4").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
我认为你把这件事复杂化了一点——为什么你需要更多的东西呢
Range("A1:IB2").Copy
Range("A4").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
dwirony的答案是解决问题的最佳方法,但如果您想知道为什么每个列都会重复,这是因为rng.rows.count在每个循环的columnIndex中添加了2(两),因为在原始数据中,每个列都有两行
此外,它确实填充了300行,因为您要求excel填充Range2变量的整个范围,它粘贴到A4:B300的每一次迭代都会向下两行并重复执行dwirony的答案是解决问题的最佳方法,但如果您想知道为什么每一列都重复,则会发生这种情况,因为rng.rows.count添加了2(两个)列索引每个循环,因为在原始数据中,每列有两行
而且它确实填充了300行,因为您要求excel填充Range2变量的整个范围,它粘贴到A4:B300的每一次迭代,向下两行并重复,因为我不完全知道我在做什么,而且显然发现了一些非常复杂的问题,不必要的代码,以尝试和适应我的需要XD非常感谢你-这是完美的作品!因为我不完全知道我在做什么,显然我发现了一些非常复杂的、不必要的代码来尝试并适应我的需要XD非常感谢——这非常有效!