电商运营数据处理常用宏


可根据注释自行调整参数

1
2
3
4
5
'<禁止屏幕刷新、警告框、更新链接窗口 Begin>
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
'<禁止屏幕刷新、警告框、更新链接窗口 End>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'<筛选-时间顺序排列 Begin>
Cells.AutoFilter
Application.ActiveSheet.AutoFilter.Sort.SortFields.Add Key:=Range( _
"A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With Application.ActiveSheet.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'<筛选-时间顺序排列 End>
'<筛选-时间降序排列 Begin>
Cells.AutoFilter
Application.ActiveSheet.AutoFilter.Sort.SortFields.Add2 Key:= _
Range("A1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
:=xlSortNormal
With Application.ActiveSheet.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'<筛选-时间降序排列 End>
1
2
3
4
5
6
7
8
'<隐藏A列 Begin>
Columns("A:A").Select
Selection.EntireColumn.Hidden = True
'<隐藏首列 End>
'<取消行隐藏 Begin>
Rows.Select
Selection.EntireRow.Hidden = False
'<取消行隐藏 End>
1
2
3
4
5
6
7
8
9
10
11
12
'<定位A列中首个空单元格 Begin>
Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Select
'<定位A列中首个空单元格 End>
'<定位第22行中首个空单元格 Begin>
Range("XFD22").End(xlToLeft).Offset(0, 1).Select
'<定位第22行中首个空单元格 End>
'<选择E2到D列末尾单元格区域 Begin>
Range("E2:D" & [e65536].End(xlUp).Row).Select
'<选择E2到D列末尾单元格区域 End>
'<复制E2到BE列末尾单元格区域 Begin>
Range("A1:BE" & [e65536].End(xlUp).Row).Copy
'<复制E2到BE列末尾单元格区域 End>
1
2
3
4
5
6
7
8
9
'<打开当前表前80行中的超链接 Begin>
Sub OpenHprLnks()
Dim i As Integer
On Error Resume Next
For i = 1 To 80
Cells(i, 2).Hyperlinks(1).Follow NewWindow:=True
Next
End Sub
'<打开当前表前80行中的超链接 End>
1
2
3
4
5
6
7
8
9
10
11
12
'<删除非当前月数据 Begin>
Dim currentMonth As String
currentMonth = Format(Date, "mm")
Dim i As Long
For i = Range("D" & Rows.Count).End(xlUp).Row To 2 Step -1 '从 D 列的最后一行开始循环到 D2
Dim month As String
month = Mid(Cells(i, 4).Value, 6, 2) '截取 D 列当前行的月份
If month <> currentMonth Then
Rows(i).Delete
End If
Next i
'<删除非当前月数据 End>
1
2
3
4
5
'<清除选中单元格公式 Begin>
For Each Cell In ActiveSheet.UsedRange
If Cell.HasFormula Then Cell.Formula = Cell.Value
Next Cell
'<清除选中单元格公式 End>
1
2
3
'<取消选中 Begin>
SendKeys"{ESC}"
'<取消选中 End>
1
2
3
4
5
6
7
8
'<选择 F 列到 AM 列已使用行 Begin>
Range("F:AM").Resize(ActiveSheet.UsedRange.Rows.Count).Select
'<选择 F 列到 AM 列已使用行 End>
'<选择表头外 A 列到 B 列已使用行 Begin>
Dim usedRange As Range
Set usedRange = ActiveSheet.Range("A2:B" & ActiveSheet.usedRange.Rows.Count)
usedRange.Select
'<选择表头外 A 列到 B 列已使用行 End>
1
2
3
4
5
6
7
8
9
10
11
Sub 已使用单元格专题()
With ActiveSheet
.UsedRange.Columns("I").Value = .UsedRange.Columns("I").Value '将 I 列单元格格式设为常规格式
.UsedRange.Columns("D").Select '选择 D 列已使用单元格
.UsedRange.Columns("D").Offset(1).Select '选择 D 列向下偏移 1 行已使用单元格
.UsedRange.Columns("D:E").Clear '清除 D 列、E 列已使用单元格数据
.UsedRange.Offset(1).Clear '清除表头外所有已使用单元格数据
.UsedRange.Copy '复制所有已使用单元格数据
End With
ActiveSheet.UsedRange.Columns("I").Value = ActiveSheet.UsedRange.Columns("I").Value '非 With 写法
End Sub