VBA,将EXCEL的2维数据表转为1行或1列(待优化)

问题和原始数据

目的:做EXCEL经常需要把EXCEL表内容(XY2个维度)转为1行或1列

         考虑写个小工具,以后可以常用

输出行

输出列

 

代码1(开始前未做清除,需要手动清除)

Sub export_row1()

maxr1 = Range("c65535").End(xlUp).Row
maxc1 = Cells(1, 3).End(xlToRight).Column

k = 1
For i = Cells(1, 3).Row To maxr1
    For j = Cells(1, 3).Column To maxc1
         Worksheets("row").Cells(1, k) = Cells(i, j)
         Worksheets("row").Cells(1, k).Interior.ColorIndex = 8
         k = k + 1
    Next
Next
End Sub


Sub export_COLUMN1()

maxr1 = Range("c65535").End(xlUp).Row
maxc1 = Cells(1, 3).End(xlToRight).Column

m = 1
For i = Cells(1, 3).Row To maxr1
    For j = Cells(1, 3).Column To maxc1
         Worksheets("column").Cells(m, 1) = Cells(i, j)
         Worksheets("column").Cells(m, 1).Interior.ColorIndex = 4
         m = m + 1
    Next
Next
End Sub

 

代码2(自动清除,要注意效率)

 

Worksheets("column").Range("a1:a999").ClearContents

Worksheets("row").Range("a1:a999").ClearContents

 

放到转换代码里去,会报错

但是单独写了一个T1()  却可以正常运行。。。。

 

 


Sub t1()
'拿出来可以正常运行
m2 = Worksheets("row").Range("a1").End(xlToRight).Column
Worksheets("row").Range(Cells(1, 1), Cells(1, m2)).ClearContents
Worksheets("row").Range(Cells(1, 1), Cells(1, m2)).Interior.ColorIndex = -4142
End Sub


Sub export_row1()

maxr1 = Range("c65535").End(xlUp).Row
maxc1 = Cells(1, 3).End(xlToRight).Column

'报错原因?
'm2 = Worksheets("row").Range("a1").End(xlToRight).Column
'Worksheets("row").Range(Cells(1, 1), Cells(1, m2)).ClearContents
'Worksheets("row").Range(Cells(1, 1), Cells(1, m2)).Interior.ColorIndex = -4142

k = 1
For i = Cells(1, 3).Row To maxr1
    For j = Cells(1, 3).Column To maxc1
         Worksheets("row").Cells(1, k) = Cells(i, j)
         Worksheets("row").Cells(1, k).Interior.ColorIndex = 8
         k = k + 1
    Next
Next
End Sub

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值