VBA每日一练(7),如何用VBA 将1行转化为 多行多列的矩阵, 和反过来矩阵转化为1行

问题和数据源

1 数据源

  • 左上角:a1
  • 第1行:1行数据的原始数据源,生成了下面的矩阵
  • 第2行:第2行,是用下面的矩阵生成的
  • 第3行---第N行,这4列的矩阵
340114a1341214b1341114a2342114
340114a1341214b1341114a2342114
340114a1           
341214b1           
341114a2           
342114b2           
341014a2           
340715b2           
340815a3           
340915b3           
341415a3           
341515b3           
341615a4           
331517b4           
3304119a4           
3317119b4           
3316119a5           
3318119b5           

 

2 第一版代码(很挫,循环写的不好,最大行号,列号没自动取)

代码1-1 如何把1行转化为 N行多列的矩阵

Sub sep1row()

x1 = Sheets("sheet5").Cells(1, 1).End(xlToRight).Column
y1 = 0

Debug.Print "x1=" & x1

For k = 1 To x1 Step 4
For i = 1 To 4

   Sheets("sheet5").Cells(3 + y1, i) = Sheets("sheet5").Cells(1, k + i - 1)
   
Next i
y1 = y1 + 1

Next k

 

代码1-2 把4列N行的矩阵转化为1行


Sub sep3()
k = 1

For i = 3 To 80
For j = 1 To 4
   Sheets("sheet5").Cells(2, k) = Sheets("sheet5").Cells(i, j)
   k = k + 1
Next j
Next i


End Sub

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值