1
我试图更改一组数据具有标头。目前预期的列都在单独的行中。我想在列A中保留第一个数据点“名称”,但将第二个数据点,“数字”移动到列B,第三个数据点,“平均”移动到列C.然后删除那些现在为空的两行在那里存在数量和平均值,并为下一组数据重复此过程。例如:Excel宏VBA命令为“转置”,但没有转置可用
- 姓名,号码,平均值(预期头)
- 约什
- 3.4
- 克雷格
- 2.3
- 史密斯
- 8.3
这里是想什么我它是:
- 姓名,号码,平均(预期头)
- 乔希,13,3.4
- 克雷格,15,2.3
- 史密斯,64,8.3
我试过几件事情:
1)移调...但是由于某些原因,这个PasteSpecial函数在我将它嵌入到的.XLSM文件中不可用。代码参考:
Worksheets("Sheet1").Range("A1:A5").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
2)复制并粘贴。这是一项正在进行的工作,代码不能编译。
For k = 3 To maxRow Step 1
Rows(k).Select
Selection.Cut
Range(Columns("B"), Rows(k)).Select
Selection.Paste
Rows(k + 1).Select
Selection.Cut
Range(Rows(k), Columns(C)).Paste
'Range(Columns("B"), Rows(k)).PasteSpecial Transpose:=True
'Range(Rows(k), Rows(k + 2)).Select
'Selection.Delete Shift:=x1Up
Next k
我至少有一千个数据点。我的代码能够处理到最后一行,但这是我宏中的最后一个重要功能。任何帮助感谢!
奇妙的是,在解决问题转效果很好。我将在未来使用它。我找到了一个解决方案,因为它大部分错误地使用了Range命令。 { 昏暗maxRow3只要 maxRow3 = ActiveSheet.UsedRange.Rows.Count 对于k = 3要MaxRow的步骤1 细胞(K,1)。选择 Selection.Cut 细胞(K - 1,2)。选择 ActiveSheet.Paste 细胞(K + 1,1)。选择 Selection.Cut 细胞(K - 1,3)。选择 ActiveSheet.Paste 范围(行(K),行(K + 1))。选择 Selection.Delete Shift:= x1Up Next k } – joshjayse
@jfadriqu抱歉,我不理解您的评论。 –
不用担心,您的建议运作良好。我刚刚结束了一个更长的手动循环来做到这一点,这是我在那里写的。 – joshjayse