社区 发现 Amazon 工具能转化成生产力----------自...
工具能转化成生产力----------自制亚马逊运营小工具分享,第一期,索赔统计
楼主开始分享的一些都是VBA小工具,因为VBA上手简单,而且比较容易传播,不是每个人都有安装pycharm的,但所有人都会有excel,我也在持续学习过程中。
亚马逊经常会重新测量库存产品的体积,有的时候测的有问题,大家就要下载费用预览,Fee preview这个报表来进行定期查看,一般楼主每两个星期会查一下,然后把这次FBA费用高于上次的统计出来,在看一下要不要进行重测,这个过程不是很复杂,但是分享嘛,先从简单的开始,而且这种也比较好实现,楼主一点一点学习,希望大家收藏关注一下给点动力。
首先建议大家都要下载excel2016以上的版本,或者wps企业版,wps个人版要安装visual basic for application插件,而且容易出各种各样的问题,所以建议大家直接用excel2016以上的版本,网上很多破解版,某宝某鱼一个也就三四块钱起。然后大家打开excel-文件-选项-excel选项-信任中心把宏启用,把加载项什么的启用,话不多说,上表格,
大家先把第一页和第二页ctrl+a全删掉,一页放之前上次的费用预览表格,一页放最近的费用预览,然后点击任意一页的一键统计就可以了,如果是多个人负责的就再筛选一下,或者你们也可以再D列加一个IFNAVLOOKUP的辅助列,筛选一下,有点excel基础的应该都会用。下面是代码,我写的比较复杂,也不美观,但能用就行,大家可以跳过,不下载我的表格,直接在开发工具-visualbasic里面插入个模块,把代码复制粘贴进去
-------------------------------------------------------------------------------------------------------------------------------------
Sub 费用变化()
Excel.Application.ScreenUpdating = False
On Error Resume Next
Dim r, a, b, j, i, x, z, k, y, m, n, o
Set r = Sheets("统计"): Set a = Sheets("现在费用"): Set b = Sheets("之前费用"): j = 2: x = 2: i = 2: z = 2
r.Cells.Clear
r.Cells.Clear
r.Cells.Clear
a.Range("A1:A" & [A1].End(xlDown).Row).Copy r.Range("A1")
b.Range("A2:A" & [A1].End(xlDown).Row).Copy r.Range("A" & [A1].End(xlDown).Row + 1)
r.Range("A1:A" & [A1].End(xlDown).Row).Select
Selection.RemoveDuplicates Columns:=1, Header:=xlNo
r.Select
Range("B1") = "现在费用": Range("C1") = "之前费用": Range("D1") = "费用差"
For Each k In Worksheets
If Right(k.Name, 2) = "费用" Then
i = 2
Do While k.Range("Y" & i) <> ""
If k.Range("Y" & i) = "--" Then
k.Range("Y" & i) = k.Range("W" & i)
End If
i = i + 1
Loop
End If
Next
With Excel.Application.WorksheetFunction
Do While Range("A" & x) <> ""
For i = 2 To Sheets.Count
Range("C" & x) = .VLookup(Range("A" & x), b.Range("A:Y"), 25, 0)
Next
x = x + 1
Loop
Do While Range("A" & j) <> ""
For i = 2 To Sheets.Count
Range("B" & j) = .VLookup(Range("A" & j), a.Range("A:Y"), 25, 0)
Next
j = j + 1
Loop
End With
Do While Range("A" & z) <> ""
Range("D" & z) = Range("B" & z) - Range("C" & z)
z = z + 1
Loop
With Range("a1").CurrentRegion
.AutoFilter
.AutoFilter Field:=3, Criteria1:=">0"
.AutoFilter Field:=2, Criteria1:=">0"
.AutoFilter Field:=4, Criteria1:="0"
End With
Rows("2:" & [A1].End(xlDown).Row).Select
Selection.Delete Shift:=xlShiftUp
ActiveWindow.ScrollRow = 1
Range("A1:D27").AutoFilter Field:=4
With ActiveSheet.AutoFilter.Sort
With .SortFields
.Clear
.Add Key:=Range("D1"), Order:=xlDescending
End With
.Header = xlYes
.Apply
End With
Columns("A:A").AutoFit
Sheet1.UsedRange.AutoFilter
With Range("a1").CurrentRegion
.AutoFilter
.AutoFilter Field:=3, Criteria1:=">0"
.AutoFilter Field:=2, Criteria1:=""
End With
Range("A:A").Copy Range("Z1")
With Excel.Application.WorksheetFunction
If Range("C2") > 0 Then
m = .TextJoin(",", 1, Range("Z2 : Z" & [A1].End(xlDown).Row)) & "断货或者停售了"
Else: m = "没有产品断货或停售"
End If
End With
Columns("Z:Z").Delete Shift:=xlToLeft
Sheet1.UsedRange.AutoFilter
With Range("a1").CurrentRegion
.AutoFilter
.AutoFilter Field:=3, Criteria1:=""
.AutoFilter Field:=2, Criteria1:=">0"
End With
Range("A:A").Copy Range("Z1")
With Excel.Application.WorksheetFunction
If Range("D2") > 0 Then
n = .TextJoin(",", 1, Range("Z2 : Z" & [A1].End(xlDown).Row)) & "为新品或者断货补上了"
End If
End With
Columns("Z:Z").Delete Shift:=xlToLeft
Sheet1.UsedRange.AutoFilter
With Range("a1").CurrentRegion
.AutoFilter
.AutoFilter Field:=3, Criteria1:=">0"
.AutoFilter Field:=2, Criteria1:=">0"
.AutoFilter Field:=4, Criteria1:=">0"
End With
With Excel.Application.WorksheetFunction
If Range("D2") > 0 Then
y = .TextJoin(",", 1, Range("A2 : A" & [A1].End(xlDown).Row)) & "或许需要重测"
Else: y = "不需要重测"
End If
End With
MsgBox "主人," & y & Chr(10) & m & Chr(10) & n
Excel.Application.ScreenUpdating = True
End Sub
------------------------------------------------------------------------------------------------------------------------
有什么问题可以问我,知无不允许xlsm格式,大家一定要把表格用excel打开,之后可以保存成xlsm格式,基本excel会一点的应该就会操作,祝大家黑五网一爆单~
16 个回复
小仙女本仙 - 皮一下很开心(*^▽^*)
赞同来自: Leaves 、 kimutaku 、 简约煎鱼