excel不规则多列转行

发布网友 发布时间:2022-03-02 12:41

我来回答

2个回答

热心网友 时间:2022-03-02 14:10

用excel里面的VB吧,把下面的sheet7改成你自己工作簿的名字

Sub 测试()
 
 iCols = Worksheets("sheet7").UsedRange.Columns.Count '获取sheet7这个工作簿有效的列
For y = 1 To iCols - 1 'Y循环每个列
    irows = Sheets("sheet7").Range("A1").End(xlDown).Row '获取A1当前多少行
    ir = Sheets("sheet7").Range("A1").Offset(0, y).End(xlDown).Row ''获取A1偏移0行1列的有效行数是多少
    Sheets("sheet7").Cells(irows + 1, 1).Resize(ir, 1) = Sheets("sheet7").Range("A1").Offset(0, y).Resize(ir, 1).Value '在原来A列有效行的下一行扩展指定大小,来存放之前获取的数据
Next
Sheets("sheet7").Range("b1:xx10000").ClearContents '清除之前B1到XX10000的数据,不清楚把这个去掉
End Sub

如果不要标题修改成

Sub 测试()
 
 iCols = Worksheets("sheet7").UsedRange.Columns.Count '获取sheet7这个工作簿有效的列
For y = 1 To iCols - 1 'Y循环每个列
    irows = Sheets("sheet7").Range("A1").End(xlDown).Row '获取A1当前多少行
    ir = Sheets("sheet7").Range("A1").Offset(0, y).End(xlDown).Row ''获取A1偏移0行1列的有效行数是多少
    Sheets("sheet7").Cells(irows + 1, 1).Resize(ir - 1, 1) = Sheets("sheet7").Range("A2").Offset(0, y).Resize(ir - 1, 1).Value '在原来A列有效行的下一行扩展指定大小,来存放之前获取的数据
Next
Sheets("sheet7").Range("b1:xx10000").ClearContents '清除之前B1到XX10000的数据,不清楚把这个去掉
End Sub

热心网友 时间:2022-03-02 15:28

选择—剪切—粘贴
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com