作者:绿色风
分类:生产管理
时间:2022-08-18
浏览:187
楼主 0Mouse |
Q:如何运用VBA完成库存货品不同尺码存货量汇总表的格式转换呢? 示例: 转换前:
转换后:
注:服装尺码从XS开始,男鞋尺码从38开始,女鞋尺码从34开始。 A:代码如下:- Sub 表格格式转换()
- Dim arr, brr(1 To 10000, 1 To 13), i%, j%, k%, x%
- arr = Range("A1:U" & Cells(Rows.Count, 1).End(xlUp).Row).Value
- For i = 4 To UBound(arr)
- For j = 12 To 21
- If Val(arr(i, j)) <> 0 Then
- x = x + 1
- If arr(i, 10) = "服装" Then
- brr(x, 12) = arr(1, j)
- Else
- brr(x, 12) = IIf(arr(i, 11) = "女", arr(2, j), arr(3, j))
- End If
- brr(x, 13) = arr(i, j)
- For k = 1 To 11
- brr(x, k) = arr(i, k)
- Next
- End If
- Next
- Next
- With Sheet2
- .Cells.Clear
- .[A1:K1].Value = [A1:K1].Value
- .[L1] = "尺码": .[M1] = "数量"
- .[A2].Resize(x, 13) = brr
- With .Range("A1").Resize(x + 1, 13).Borders
- .LineStyle = xlContinuous
- .Weight = xlThin
- End With
- End With
- End Sub
附件: 运用VBA完成库存货品不同尺码存货量汇总表的格式转换.rar |
2楼 xyf2210 |
学习 |
3楼 eliane_lei |
跟着小千学习!谢谢分享! |
4楼 LOGO |
自己写了一段,后面将数组写入单元格的代码照搬了小千版主的代码
- Sub CH()
- Dim arr, crr()
- Dim r As Integer, c As Integer, r2 As Integer, i As Integer
- arr = Range("a1").CurrentRegion
- For r = 4 To UBound(arr)
- For c = 12 To UBound(arr, 2)
- If Val(arr(r, c)) <> 0 Then
- i = i + 1
- ReDim Preserve crr(1 To 13, 1 To i)
- For r2 = 1 To 11
- crr(r2, i) = arr(r, r2)
- Next
- crr(12, i) = arr(IIf(arr(r, 10) <> "服装", IIf(arr(r, 11) = "男", 3, 2), 1), c)
- crr(13, i) = arr(r, c)
- End If
- Next
- Next
- With Sheet2
- .Cells.Clear
- .[A1:K1].Value = [A1:K1].Value
- .[L1] = "尺码": .[M1] = "数量"
- .[A2].Resize(i, 13) = WorksheetFunction.Transpose(crr)
- With .Range("A1").Resize(i + 1, 13).Borders
- .LineStyle = xlContinuous
- .Weight = xlThin
- End With
- End With
- End Sub
|
5楼 lrlxxqxa |
|
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一