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
选择—剪切—粘贴