我经营一家小型零售店,我的任务是为我们的商品创建库存标签。我将物品清单从库存管理软件 (AMan Pro) 导出到 Excel 中,其中包含物品的描述、数量、状况、SKU# 和平台(视频游戏平台)。我目前有两个宏。一个会将 SKU 修剪为可用的格式(去掉前导字母),另一个将多个数量的项目分开到单独的行中。(即数量为 5 的项目 #1 将被复制到数量为 1 的 5 行)这东西有效,但我认为我正在做一些可以用宏处理的不必要的步骤。
我的 AMan 程序会生成一个包含这些项目的 Excel 工作簿。然后,我将这些项目复制到第一页上的“启用宏”工作簿中,然后运行我的宏。表二具有正确格式的标签数据。例如; 它具有将描述字段修剪为仅使用前 60 个字符的公式。(有些描述很长)
我觉得第二张纸真的没有必要。我想将这些项目复制到工作表 1 中并运行一个宏,该宏在工作表 1上为我完成所有这些格式化。
- 将具有多个数量的项目分隔到单独的行中(我确实有一个工作宏。)
- 从 SKU(工作宏)中删除前导字母,然后将 SKU 放入七位数字格式(#######)
- 将描述减少到仅前 60 个字符。
- 将条件减少到仅前 2 个字符。
- 将平台减少到仅前 15 个字符。
这是我当前的宏代码和我的电子表格的链接。提前谢谢各位。 SKU_LABEL_FINAL.xlsm
Sub ExpandRows()
Dim dat As Variant
Dim i As Long
Dim rw As Range
Dim rng As Range
Set rng = Sheets(1).UsedRange
dat = rng
' Loop thru your data, starting at the last row
For i = UBound(dat, 1) To 2 Step -1
' If Quantity > 1
If dat(i, 2) > 1 Then
' Insert rows to make space
Set rw = rng.Rows(i).EntireRow
rw.Offset(1, 0).Resize(dat(i, 2) - 1).Insert
' copy row data down
rw.Copy rw.Offset(1, 0).Resize(dat(i, 2) - 1)
' set Quantity to 1
rw.Cells(1, 2).Resize(dat(i, 2), 1) = 1
End If
Next
Columns("D:D").Select
Selection.Replace What:="AManPro-", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
结束子