|
本帖最后由 老貓 于 2019-12-8 14:33 编辑
原表:
VBA运算后的表:
目的:将原表每一行拆分成31(一个月)行,每行显示一天的产量。
现在能够拆分成31行获取每天的产量,而无法将1-31的日期显示在每一行的日期中,请高手检查命令并赐教,谢谢!
代码如下:
- Sub Trans()
- Dim arr, brr, i&, n&, m As Byte, j As Byte
- arr = [Sheet1].UsedRange
- ReDim brr(1 To (UBound(arr, 2) - 4) * (UBound(arr) - 1), 1 To UBound(arr))
- n = 1
- For i = 2 To UBound(arr)
- For m = 1 To 4
- brr(n, m) = arr(i, m)
- Next
- For j = 5 To UBound(arr, 2)
- brr(n, 1) = arr(i, 1) '1-4列空行填补
- brr(n, 2) = arr(i, 2) '1-4列空行填补
- brr(n, 3) = arr(i, 3) '1-4列空行填补
- brr(n, 4) = arr(i, 4) '1-4列空行填补
-
- brr(n, 5) = arr(i, j) '第5列列出行项目值
- 'brr(n, 6) = arr(i, j) '错误
-
- n = n + 1
- Next
- Next
- With ActiveSheet
- For m = 1 To 4
- .Cells(1, m) = arr(1, m)
- .Cells(1, 5) = "当日产量"
- .Cells(1, 6) = "日期"
- Next
- .[a2].Resize(n - 1, 5) = brr
- End With
- End Sub
复制代码 A的宏是另一种方法(忽略空产量日期)。
|
|