不好意思,吹牛了,不是1秒。我实际测量过,大概需要……20秒左右。
然后美国站和欧洲站的报表数据不适用于此代码。因为我自己是日本站运营,因此是按着自己的源数据写的。另外看过欧洲站同事的后台数据,似乎没有像日本站后台那样收支非常明细。所以可能他们暂时是没办法享受到这样的方便快捷操作了。
先来看一下最后的实际效果。
![](https://img.haomeiwen.com/i9823247/be99d06904bbea6b.png)
马赛克处是我的SKU,请忽略我这可怜的销量。
这样可以把每个SKU的收支全部列出来。简直就是偷懒,阿呸……提高效率神器。以前1.5小时的任务,现在1分钟内就可以完成了。喜极而泣!
Sub dataOrg()
Application.ScreenUpdating = False
Dim rowNum, i As Integer
rowNum = Application.WorksheetFunction.CountA(Range("g:g"))
For i = rowNum To 1 Step -1
If Cells(i, 7) = 0 Then
Rows(i).Delete
End If
Next
rowNum = Application.WorksheetFunction.CountA(Range("e:e"))
For i = 1 To rowNum
If Cells(i, 6) = "" Then
Cells(i, 6) = Cells(i, 5)
End If
Next
rowNum = Application.WorksheetFunction.CountA(Range("e:e"))
For i = 1 To rowNum
If Cells(i, 3) = "" Then
Cells(i, 3) = "大类费用"
End If
Next
rowNum = Application.WorksheetFunction.CountA(Range("e:e"))
For i = 1 To rowNum
If Cells(i, 6) = "促销返点" Then
Cells(i, 8) = ""
End If
Next
rowNum = Application.WorksheetFunction.CountA(Range("e:e"))
For i = 1 To rowNum
If Cells(i, 6) = "积分成本" Then
Cells(i, 8) = ""
End If
Next
End Sub
其实逻辑简单的不行
(1) for循环查找价格为0的单元格(没有意义的垃圾数据)找到了便删除单元格所在行
(2)for循环查找付款明细列中为空的单元格,如果找到了,便填充左偏移量为1的值
(3)for循环查找SKU中为空的数据,如果找到了,就填充大类费用
(4)for循环查找某列中积分成本和促销返点的值
好久没写VBA了,今天有了新的需求,正好练练手。
说实话,解决问题是我工作中遇到最最最开心的事情,比我完成销售目标还开心。
网友评论