EXCEL如何用宏实现转置多行多列

2024-11-22 06:58:00
推荐回答(2个)
回答1:

可以用函数解决,如果数据在A1:B20中,C1中输入
=OFFSET($A$1,ROUNDUP(COLUMN(A1)/2,),MOD(COLUMN(B1),2))
用自动填充柄将C1中公式向右复制,就可以实现你的要求了。
不确定的行,列,不确定的开始和结束,用公式难度很大,运行会极慢,我以前试过,公式很长很费解,而且这台电脑上没有保存。你还是让其它人用宏做吧。

回答2:

试试这个,运行宏前先选中需要转换的区域。还有问题HI我:

Sub Transmit()
If Selection.Count < 2 Then Exit Sub
Set c = Application.InputBox("请选择目标区域的第一个单元格", Type:=8)
i = 0
Set c = IIf(c.Count = 1, c, c(1, 1))
For Each cel In Selection
c.Offset(0, i) = cel
i = i + 1
Next
If MsgBox("清除原内容吗?", vbYesNo) = vbYes Then Selection.ClearContents
End Sub