Excel 宏 VAB 編程實(shí)際工作使用記錄匯總

簡單復(fù)制-去重-做透視表

Sub 宏3()
Application.ScreenUpdating = False '關(guān)閉屏幕更新,看不到宏的執(zhí)行過程,但提高宏運(yùn)行速度
Application.EnableEvents = False '關(guān)閉事件,防止觸發(fā)事情,提高運(yùn)行速度
t = Timer
'復(fù)制-去重
'Worksheets("處理結(jié)果").Range("A:C").ClearContents
Worksheets("派單明細(xì)報(bào)表").Select
Range("E:E,O:O,U:U").Select
Selection.Copy
Worksheets("處理結(jié)果").Select
Columns("A:C").Select
ActiveSheet.Paste
Application.CutCopyMode = False
irow = Range("a1").CurrentRegion.Rows.Count
ActiveSheet.Range("A1:C" & irow).RemoveDuplicates Columns:=Array(1, 2, 3), _
Header:=xlYes

 '透視表
 Worksheets("處理結(jié)果").Range("J:N").ClearContents
 'irow = Range("a1").CurrentRegion.Rows.Count '選擇最大行
 'aa = Range("A1:C" & irow).Select
 'R1C1:R1048576C3
 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "處理結(jié)果!R1C1:R1048576C3", Version:=6).CreatePivotTable TableDestination:= _
    "處理結(jié)果!R2C10", TableName:="數(shù)據(jù)透視表2", DefaultVersion:=6
Sheets("處理結(jié)果").Select
Cells(2, 10).Select
ActiveSheet.PivotTables("數(shù)據(jù)透視表2").RepeatAllLabels xlRepeatLabels
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("數(shù)據(jù)透視表2").PivotFields("發(fā)貨區(qū)域")
    .Orientation = xlRowField
    .Position = 1
End With
With ActiveSheet.PivotTables("數(shù)據(jù)透視表2").PivotFields("派單類型")
    .Orientation = xlColumnField
    .Position = 1
End With
ActiveSheet.PivotTables("數(shù)據(jù)透視表2").AddDataField ActiveSheet.PivotTables("數(shù)據(jù)透視表2" _
    ).PivotFields("派單單號(hào)"), "計(jì)數(shù)項(xiàng):派單單號(hào)", xlCount
ActiveWorkbook.ShowPivotTableFieldList = False

Worksheets("處理結(jié)果").Range("A:C").ClearContents
MsgBox Timer - t & "秒完成"
Application.ScreenUpdating = True '結(jié)束屏幕更新

End Sub

VBA 字典多表匹配

----------------------------------------------------------------------------------------------------------------------------------------

'三表之中sheet1、sheet2、sheet3 匹配(把sheet2合同號(hào)、sheet3合同號(hào)匹配到sheet1里面去)
Sub nihao1()
Windows("信貸數(shù)據(jù)匹配.xlsm").Activate
Worksheets("Sheet1").Select
Worksheets("Sheet2").Select
Sheets("Sheet3").Select
Dim i&, Myr&, arr, j&
Dim d, k, t, m&, Arr1
Set d = CreateObject("Scripting.Dictionary") '定義字典'
Set d2 = CreateObject("Scripting.Dictionary") '定義字典'
'Set d2 = CreateObject("Scripting.Dictionary") '定義字典'
'Set d3 = CreateObject("Scripting.Dictionary") '定義字典'
'Set d4 = CreateObject("Scripting.Dictionary") '定義字典'
'Set d5 = CreateObject("Scripting.Dictionary") '定義字典'
'y = d(Arr(Range("c1:c200"))) + 1
Worksheets("Sheet3").Select '開始運(yùn)行字典'
With Sheets("Sheet3")
X = Range("b1").CurrentRegion.Rows.Count '設(shè)置最大行'
For i = 2 To X
d(.Cells(i, 2).Value) = .Cells(i, 2).Value
'd2(.Cells(i, 2).Value) = .Cells(i, 2).Value
' d2(.Cells(i, 2).Value) = .Cells(i, 7).Value
' d3(.Cells(i, 2).Value) = .Cells(i, 8).Value
' d4(.Cells(i, 2).Value) = .Cells(i, 9).Value
' d5(.Cells(i, 2).Value) = .Cells(i, 10).Value
'd1(.Cells(i, 1).Value) = .Cells(i, 3).Value
Next i
End With

Worksheets("Sheet2").Select '開始運(yùn)行字典'
With Sheets("Sheet2")
X1 = Range("b1").CurrentRegion.Rows.Count '設(shè)置最大行'
For i1 = 2 To X1
d2(.Cells(i1, 2).Value) = .Cells(i1, 2).Value
'd1(.Cells(i, 2).Value) = .Cells(i, 2).Value
' d2(.Cells(i, 2).Value) = .Cells(i, 7).Value
' d3(.Cells(i, 2).Value) = .Cells(i, 8).Value
' d4(.Cells(i, 2).Value) = .Cells(i, 9).Value
' d5(.Cells(i, 2).Value) = .Cells(i, 10).Value
'd1(.Cells(i, 1).Value) = .Cells(i, 3).Value
Next i1
End With

Sheets("Sheet1").Select
With Sheets("Sheet1")
y = Range("b1").CurrentRegion.Rows.Count '設(shè)置最大行'
For Z = 2 To y
.Cells(Z, 4).Value = d(.Cells(Z, 1).Value)
.Cells(Z, 3).Value = d2(.Cells(Z, 1).Value)
' .Cells(Z, 23).Value = d3(.Cells(Z, 2).Value)
' .Cells(Z, 24).Value = d4(.Cells(Z, 2).Value)
' .Cells(Z, 25).Value = d5(.Cells(Z, 2).Value)
'.Cells(Z, 21).Value = d1(.Cells(Z, 1).Value)
Next Z

End With

End Sub

(1.1)VBA批量打開桌面文件夾里面多個(gè)工作簿 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub test()
Dim mypath, myfile '定義
mypath = "C:\Users\xn084037\Desktop" & "\nihao" '指定路徑nihao文件夾名
myfile = Dir(mypath & "*.xlsx") '指定文件家里面的工作簿(文件夾下面有多個(gè)工作簿)
Application.ScreenUpdating = False '關(guān)閉屏幕更新
Application.DisplayAlerts = False '關(guān)閉提示框
Do While myfile <> ""
If myfile <> ThisWorkbook.Name Then
Workbooks.Open mypath & myfile

'With ActiveWorkbook '批量操作的語句
'.Sheets(1).Range("A1") = "金額"
'.Sheets(2).Delete
'End With
'ActiveWorkbook.Save
'ActiveWorkbook.Close
End If
myfile = Dir
Loop
Application.DisplayAlerts = True
Application.ScreenUpdating = True


(1.2)VBA批量打開桌面文件夾里面多個(gè)工作簿并且把數(shù)據(jù)復(fù)制到匯總表

Sub test1()
t = Timer
p = "C:\Users\xn084037\Desktop" & "\同一個(gè)文件夾不同工作簿分案清單合并VBA" '指定文件路徑
f = Dir(p & "*.xlsx") '指定文件夾旗下多個(gè)工作簿
Application.ScreenUpdating = False '關(guān)閉屏幕顯示
ReDim brr(1 To 100000, 1 To 26) '定義匯總表數(shù)組范圍
Do While f <> ""
If f <> ThisWorkbook.Name Then
n = n + 1 '文件夾里面工作簿個(gè)數(shù)
Set sh = GetObject(p & f).Sheets(1) '打開這些文件夾旗下所有工作簿的一個(gè)sheets
Arr = sh.[a1].CurrentRegion '定義Arr數(shù)據(jù)范圍為每個(gè)sheets的a1單元格不為空區(qū)域
Workbooks(f).Close False
For i = 2 To UBound(Arr) '子表中行的取值范圍
m = m + 1 '匯總表中第一行為表頭,第一次循環(huán)時(shí),匯總表中為2行才是填充數(shù)據(jù),所以m=m+1就是匯總表中的步長,
'brr(m, 1) = Arr(i, 4)
For j = 1 To 26 '列的取值范圍
brr(m, j) = Arr(i, j) 'brr(m, j)是匯總表數(shù)組,Arr(i, j)是子表數(shù)組
Next
Next
End If
f = Dir
Loop
Set sh = Nothing '釋放內(nèi)存
If m > 0 Then
[a1].CurrentRegion.Offset(1).ClearContents '可以在保留第一行表頭的情況下,把其他行的數(shù)據(jù)都徹底刪除。
[a2].Resize(m, 26) = brr
End If
Application.ScreenUpdating = True
MsgBox "合并了:" & n & "個(gè)文件;共有:" & m & "行數(shù)據(jù)。" & "用時(shí):" & Format(Timer - t, "0.00") & "秒" '顯示
End Sub


(1)執(zhí)行打開已隱藏輔助表功能

Sub chuxian() '執(zhí)行打開已隱藏輔助表功能
Worksheets("總回退").Visible = True
Worksheets("總回退輔表").Visible = True
Worksheets("總回收率").Visible = True
Worksheets("總回收率輔表").Visible = True
Worksheets("跑出的數(shù)據(jù)").Visible = True
Worksheets("批量添加").Visible = True
Worksheets("M3回收率").Visible = True
Worksheets("M3").Visible = True
Worksheets("M2_1回收率").Visible = True
Worksheets("M2-1").Visible = True
Worksheets("M2_2回收率").Visible = True
Worksheets("M2-2").Visible = True
Worksheets("異常處理").Visible = True
End Sub


(2)類似于excel中sumifs函數(shù)

Sub match_caculate() '本代碼主要功能是類似于excel中sumifs函數(shù) 通過工號(hào)匹配可算回款數(shù)據(jù),生成第八列員工實(shí)際回款、第9列 回收率=員工實(shí)際回款/逾期金額、'第10列 排名

Sheets("總回收率").Select '選擇對象總回收率這個(gè)sheet(總回收率的數(shù)據(jù)先從數(shù)據(jù)庫跑出來)

a = Range("a1").CurrentRegion.Rows.Count '選擇最大行

For i = 2 To a ' 循環(huán)的寫法
'類似于excel中sumifs函數(shù) 通過工號(hào)匹配可算回款數(shù)據(jù)
Cells(i, 8) = WorksheetFunction.SumIfs(Sheets("可算回退").Range("J:J"), Sheets("可算回退").Range("B:B"), Sheets("總回收率").Range("B" & i)) '第八列員工實(shí)際回款

Cells(i, 9) = Cells(i, 8) / Cells(i, 7) '第9列 回收率=員工實(shí)際回款/逾期金額

Cells(i, 10) = i - 1 '第10列 排名

Next i

End Sub


(3)填充功能

Sub add_() '填充功能

Worksheets("可算回退輔表").Select '選擇對象批可算回退輔表這個(gè)sheet

Range("A1") = "合同&工號(hào)" '可算回退輔表的A1單元格=合同&工號(hào)

a = Range("B1").CurrentRegion.Rows.Count '取最大行

Range("A2").FormulaR1C1 = "=RC[1]&RC[2]" 'B2列&C2列(合同&工號(hào))

Range("A2").AutoFill Destination:=Range("A2:A" & a), Type:=xlFillDefault '填充

Worksheets("批量處理").Select '選擇對象批量處理這個(gè)sheet

b = Range("B1").CurrentRegion.Rows.Count '取最大行

Range("C2").AutoFill Destination:=Range("C2:C" & b), Type:=xlFillDefault '填充

Range("D2").AutoFill Destination:=Range("D2:D" & b), Type:=xlFillDefault '填充

Range("E2").AutoFill Destination:=Range("E2:E" & b), Type:=xlFillDefault '填充

Range("F2").AutoFill Destination:=Range("F2:F" & b), Type:=xlFillDefault '填充

Range("G2").AutoFill Destination:=Range("G2:G" & b), Type:=xlFillDefault '填充

Range("H2").AutoFill Destination:=Range("H2:H" & b), Type:=xlFillDefault '填充

Range("J2").AutoFill Destination:=Range("J2:J" & b), Type:=xlFillDefault '填充

Range("K2").AutoFill Destination:=Range("K2:K" & b), Type:=xlFillDefault '填充

Range("M2").AutoFill Destination:=Range("M2:M" & b), Type:=xlFillDefault '填充

Range("N2").AutoFill Destination:=Range("N2:N" & b), Type:=xlFillDefault '填充

End Sub


(4)主要執(zhí)行xindai 表清空、篩選、選擇最大行 、復(fù)制、粘貼、排序、排名、循環(huán)、日期格式、調(diào)整百分比、隱藏各個(gè)輔助表功能

Sub Seperate() '主要執(zhí)行xindai 表清空、篩選、選擇最大行 、復(fù)制、粘貼、排序、排名、循環(huán)、日期格式、調(diào)整百分比、隱藏各個(gè)輔助表功能

' ps = "是"
'
' msg = Application.InputBox(prompt:="請問是否處理了異常數(shù)據(jù)調(diào)整表的異常及回收率表的pick_me", Type:=1 + 2)
' If msg <> ps Then MsgBox "請先處理異常數(shù)據(jù)調(diào)整表的異常": Exit Sub

T = Timer '定義時(shí)間

'Call toushibiao

' If Worksheets("總回收率").Range("N4").Value = False Then
' MsgBox ("數(shù)據(jù)存在異常,請核實(shí)"): Exit Sub
' ElseIf Worksheets("總回收率").Range("N4").Value = True Then
' MsgBox ("數(shù)據(jù)無誤,繼續(xù)執(zhí)行")
' End If

' msg = Application.InputBox(prompt:="是否需要剔除委案", Type:=1 + 2)
' If msg = ps Then
' Call 剔除委案
' End If

'清空區(qū)域

Worksheets("M1回收率").Columns("A:L").ClearContents '清空代碼

Worksheets("M2回收率").Columns("A:L").ClearContents '清空代碼

Worksheets("M1回退").UsedRange.ClearContents '清空代碼

Worksheets("M2回退").UsedRange.ClearContents '清空代碼

Worksheets("可算回退輔表").Columns("B:O").ClearContents '清空代碼

'Sheets("可算回退").UsedRange.EntireColumn.AutoFit

'復(fù)制數(shù)據(jù)至輔表

Worksheets("可算回退").Select ' 選擇對象可算回退這個(gè)sheet

Columns("A:J").Copy '復(fù)制可算回退A-J列

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

Worksheets("可算回退輔表").Range("B1").Select '選擇對象可算回退輔表這個(gè)sheet的B1

     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False '執(zhí)行粘貼代碼

'Columns("C:C").Insert Shift:=xlToRight

Columns("F:F").Select '選擇對象F列

Selection.NumberFormatLocal = "yyyy/mm/dd" '把F列的日期格式設(shè)置為年月日(yyyy/mm/dd)

Columns("J:J").Select '選擇對象J列

Selection.NumberFormatLocal = "yyyy/mm/dd" '把J列的日期格式設(shè)置為年月日(yyyy/mm/dd)

'復(fù)制數(shù)據(jù)至各子表

'表1

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

a = Range("A1").CurrentRegion.Rows.Count '選擇最大行

Set edg = Worksheets("可算回退輔表").UsedRange

ActiveSheet.Range("B1:O1").AutoFilter field:=4, Criteria1:="M1" '篩選第四列=M1數(shù)據(jù)

edg.Copy '復(fù)制

Worksheets("M1回退").Select '選擇對象M1回退這個(gè)sheet

Worksheets("M1回退").Range("A1").Select '選擇對象M1回退這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼

Application.CutCopyMode = False

'表2

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

ActiveSheet.Range("B1:O1").AutoFilter field:=4, Criteria1:="M2" '篩選第四列=M2數(shù)據(jù)

edg.Copy '執(zhí)行復(fù)制

Worksheets("M2回退").Select '選擇對象M2回退這個(gè)sheet

Worksheets("M2回退").Range("A1").Select '選擇對象M2回退這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼

Application.CutCopyMode = False

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

Worksheets("可算回退輔表").Range("A1:M1").AutoFilter

'總回收率調(diào)整格式

Worksheets("總回收率").Select '選擇對象總回收率這個(gè)sheet

x = Range("A1").CurrentRegion.Rows.Count '選擇最大行

Dim rng As Range '定義 rng As Range

Set rng = Range("A1:J" & x) '選定范圍

rng.Sort key1:="員工實(shí)際回款", order1:=xlDescending, Header:=xlYes '對員工實(shí)際回款這列進(jìn)行降序排序

For i = 2 To x

Range("J" & i) = i - 1 '對J列排名

Next

Range("H2:H" & x).Select '選擇 H2所在列

Selection.NumberFormatLocal = "G/通用格式" '調(diào)整格式

Range("I2:I" & x).Select '選擇I2所在列

Selection.NumberFormatLocal = "0.00%" '調(diào)整百分比為2位小數(shù)點(diǎn)

'總回收率的數(shù)據(jù)拆分至各子表
'表1

Worksheets("總回收率").Select '選擇對象總回收率這個(gè)sheet

Range("A1:J" & x).AutoFilter field:=4, Criteria1:="M1" '篩選第四列=M1數(shù)據(jù)

rng.Copy '執(zhí)行復(fù)制

Worksheets("M1回收率").Select '選擇對象M1回收率這個(gè)sheet

Worksheets("M1回收率").Range("A1").Select '選擇對象M1回收率這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼代碼

Y = Range("A1").CurrentRegion.Rows.Count '選擇最大行

For i = 2 To Y '循環(huán)

Range("J" & i) = i - 1 '對J列排名

Next

Application.CutCopyMode = False

'表2

Worksheets("總回收率").Select '選擇對象總回收率這個(gè)sheet

Range("A1:J" & x).AutoFilter field:=4, Criteria1:="M2" '篩選第四列=M2數(shù)據(jù)

rng.Copy '執(zhí)行復(fù)制代碼

Worksheets("M2回收率").Select '選擇對象M2回收率這個(gè)sheet

Worksheets("M2回收率").Range("A1").Select '選擇對象M2回收率這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼

Y = Range("A1").CurrentRegion.Rows.Count '選擇最大行

For i = 2 To Y '循環(huán)

Range("K" & i) = i - 1 'K列排名

Next

Application.CutCopyMode = False

Worksheets("總回收率").Range("a1:j1").AutoFilter

MsgBox Timer - T & "秒完成嘿嘿" '程序執(zhí)行后提示完成時(shí)間

Set rng = Nothing '釋放 rng

Set edg = Nothing '釋放 edg

'以下代碼是隱藏各個(gè)輔助表
Worksheets("可算回退").Visible = False

Worksheets("可算回退輔表").Visible = False

Worksheets("總回收率").Visible = False

Worksheets("M2回退").Visible = False

Worksheets("M2回收率").Visible = False

Worksheets("跑出后的數(shù)據(jù)").Visible = False

Worksheets("批量處理").Visible = False

End Sub


Sub chuxian() '執(zhí)行打開已隱藏輔助表功能
Worksheets("總回退").Visible = True
Worksheets("總回退輔表").Visible = True
Worksheets("總回收率").Visible = True
Worksheets("總回收率輔表").Visible = True
Worksheets("跑出的數(shù)據(jù)").Visible = True
Worksheets("批量添加").Visible = True
Worksheets("M3回收率").Visible = True
Worksheets("M3").Visible = True
Worksheets("M2_1回收率").Visible = True
Worksheets("M2-1").Visible = True
Worksheets("M2_2回收率").Visible = True
Worksheets("M2-2").Visible = True
Worksheets("異常處理").Visible = True
End Sub


Sub match_caculate() '本代碼主要功能是類似于excel中sumifs函數(shù) 通過工號(hào)匹配可算回款數(shù)據(jù),生成第八列員工實(shí)際回款、第9列 回收率=員工實(shí)際回款/逾期金額、'第10列 排名

Sheets("總回收率").Select '選擇對象總回收率這個(gè)sheet(總回收率的數(shù)據(jù)先從數(shù)據(jù)庫跑出來)

a = Range("a1").CurrentRegion.Rows.Count '選擇最大行

For i = 2 To a ' 循環(huán)的寫法
'類似于excel中sumifs函數(shù) 通過工號(hào)匹配可算回款數(shù)據(jù)
Cells(i, 8) = WorksheetFunction.SumIfs(Sheets("可算回退").Range("J:J"), Sheets("可算回退").Range("B:B"), Sheets("總回收率").Range("B" & i)) '第八列員工實(shí)際回款

Cells(i, 9) = Cells(i, 8) / Cells(i, 7) '第9列 回收率=員工實(shí)際回款/逾期金額

Cells(i, 10) = i - 1 '第10列 排名

Next i

End Sub

Sub add_() '填充功能

Worksheets("可算回退輔表").Select '選擇對象批可算回退輔表這個(gè)sheet

Range("A1") = "合同&工號(hào)" '可算回退輔表的A1單元格=合同&工號(hào)

a = Range("B1").CurrentRegion.Rows.Count '取最大行

Range("A2").FormulaR1C1 = "=RC[1]&RC[2]" 'B2列&C2列(合同&工號(hào))

Range("A2").AutoFill Destination:=Range("A2:A" & a), Type:=xlFillDefault '填充

Worksheets("批量處理").Select '選擇對象批量處理這個(gè)sheet

b = Range("B1").CurrentRegion.Rows.Count '取最大行

Range("C2").AutoFill Destination:=Range("C2:C" & b), Type:=xlFillDefault '填充

Range("D2").AutoFill Destination:=Range("D2:D" & b), Type:=xlFillDefault '填充

Range("E2").AutoFill Destination:=Range("E2:E" & b), Type:=xlFillDefault '填充

Range("F2").AutoFill Destination:=Range("F2:F" & b), Type:=xlFillDefault '填充

Range("G2").AutoFill Destination:=Range("G2:G" & b), Type:=xlFillDefault '填充

Range("H2").AutoFill Destination:=Range("H2:H" & b), Type:=xlFillDefault '填充

Range("J2").AutoFill Destination:=Range("J2:J" & b), Type:=xlFillDefault '填充

Range("K2").AutoFill Destination:=Range("K2:K" & b), Type:=xlFillDefault '填充

Range("M2").AutoFill Destination:=Range("M2:M" & b), Type:=xlFillDefault '填充

Range("N2").AutoFill Destination:=Range("N2:N" & b), Type:=xlFillDefault '填充

End Sub

Sub Seperate() '主要執(zhí)行xindai 表清空、篩選、選擇最大行 、復(fù)制、粘貼、排序、排名、循環(huán)、日期格式、調(diào)整百分比、隱藏各個(gè)輔助表功能

' ps = "是"
'
' msg = Application.InputBox(prompt:="請問是否處理了異常數(shù)據(jù)調(diào)整表的異常及回收率表的pick_me", Type:=1 + 2)
' If msg <> ps Then MsgBox "請先處理異常數(shù)據(jù)調(diào)整表的異常": Exit Sub

T = Timer '定義時(shí)間

'Call toushibiao

' If Worksheets("總回收率").Range("N4").Value = False Then
' MsgBox ("數(shù)據(jù)存在異常,請核實(shí)"): Exit Sub
' ElseIf Worksheets("總回收率").Range("N4").Value = True Then
' MsgBox ("數(shù)據(jù)無誤,繼續(xù)執(zhí)行")
' End If

' msg = Application.InputBox(prompt:="是否需要剔除委案", Type:=1 + 2)
' If msg = ps Then
' Call 剔除委案
' End If

'清空區(qū)域

Worksheets("M1回收率").Columns("A:L").ClearContents '清空代碼

Worksheets("M2回收率").Columns("A:L").ClearContents '清空代碼

Worksheets("M1回退").UsedRange.ClearContents '清空代碼

Worksheets("M2回退").UsedRange.ClearContents '清空代碼

Worksheets("可算回退輔表").Columns("B:O").ClearContents '清空代碼

'Sheets("可算回退").UsedRange.EntireColumn.AutoFit

'復(fù)制數(shù)據(jù)至輔表

Worksheets("可算回退").Select ' 選擇對象可算回退這個(gè)sheet

Columns("A:J").Copy '復(fù)制可算回退A-J列

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

Worksheets("可算回退輔表").Range("B1").Select '選擇對象可算回退輔表這個(gè)sheet的B1

     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False '執(zhí)行粘貼代碼

'Columns("C:C").Insert Shift:=xlToRight

Columns("F:F").Select '選擇對象F列

Selection.NumberFormatLocal = "yyyy/mm/dd" '把F列的日期格式設(shè)置為年月日(yyyy/mm/dd)

Columns("J:J").Select '選擇對象J列

Selection.NumberFormatLocal = "yyyy/mm/dd" '把J列的日期格式設(shè)置為年月日(yyyy/mm/dd)

'復(fù)制數(shù)據(jù)至各子表

'表1

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

a = Range("A1").CurrentRegion.Rows.Count '選擇最大行

Set edg = Worksheets("可算回退輔表").UsedRange

ActiveSheet.Range("B1:O1").AutoFilter field:=4, Criteria1:="M1" '篩選第四列=M1數(shù)據(jù)

edg.Copy '復(fù)制

Worksheets("M1回退").Select '選擇對象M1回退這個(gè)sheet

Worksheets("M1回退").Range("A1").Select '選擇對象M1回退這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼

Application.CutCopyMode = False

'表2

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

ActiveSheet.Range("B1:O1").AutoFilter field:=4, Criteria1:="M2" '篩選第四列=M2數(shù)據(jù)

edg.Copy '執(zhí)行復(fù)制

Worksheets("M2回退").Select '選擇對象M2回退這個(gè)sheet

Worksheets("M2回退").Range("A1").Select '選擇對象M2回退這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼

Application.CutCopyMode = False

Worksheets("可算回退輔表").Select ' 選擇對象可算回退輔表這個(gè)sheet

Worksheets("可算回退輔表").Range("A1:M1").AutoFilter

'總回收率調(diào)整格式

Worksheets("總回收率").Select '選擇對象總回收率這個(gè)sheet

x = Range("A1").CurrentRegion.Rows.Count '選擇最大行

Dim rng As Range '定義 rng As Range

Set rng = Range("A1:J" & x) '選定范圍

rng.Sort key1:="員工實(shí)際回款", order1:=xlDescending, Header:=xlYes '對員工實(shí)際回款這列進(jìn)行降序排序

For i = 2 To x

Range("J" & i) = i - 1 '對J列排名

Next

Range("H2:H" & x).Select '選擇 H2所在列

Selection.NumberFormatLocal = "G/通用格式" '調(diào)整格式

Range("I2:I" & x).Select '選擇I2所在列

Selection.NumberFormatLocal = "0.00%" '調(diào)整百分比為2位小數(shù)點(diǎn)

'總回收率的數(shù)據(jù)拆分至各子表
'表1

Worksheets("總回收率").Select '選擇對象總回收率這個(gè)sheet

Range("A1:J" & x).AutoFilter field:=4, Criteria1:="M1" '篩選第四列=M1數(shù)據(jù)

rng.Copy '執(zhí)行復(fù)制

Worksheets("M1回收率").Select '選擇對象M1回收率這個(gè)sheet

Worksheets("M1回收率").Range("A1").Select '選擇對象M1回收率這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼代碼

Y = Range("A1").CurrentRegion.Rows.Count '選擇最大行

For i = 2 To Y '循環(huán)

Range("J" & i) = i - 1 '對J列排名

Next

Application.CutCopyMode = False

'表2

Worksheets("總回收率").Select '選擇對象總回收率這個(gè)sheet

Range("A1:J" & x).AutoFilter field:=4, Criteria1:="M2" '篩選第四列=M2數(shù)據(jù)

rng.Copy '執(zhí)行復(fù)制代碼

Worksheets("M2回收率").Select '選擇對象M2回收率這個(gè)sheet

Worksheets("M2回收率").Range("A1").Select '選擇對象M2回收率這個(gè)sheet的A1列

ActiveSheet.Paste '執(zhí)行粘貼

Y = Range("A1").CurrentRegion.Rows.Count '選擇最大行

For i = 2 To Y '循環(huán)

Range("K" & i) = i - 1 'K列排名

Next

Application.CutCopyMode = False

Worksheets("總回收率").Range("a1:j1").AutoFilter

MsgBox Timer - T & "秒完成嘿嘿" '程序執(zhí)行后提示完成時(shí)間

Set rng = Nothing '釋放 rng

Set edg = Nothing '釋放 edg

'以下代碼是隱藏各個(gè)輔助表
Worksheets("可算回退").Visible = False

Worksheets("可算回退輔表").Visible = False

Worksheets("總回收率").Visible = False

Worksheets("M2回退").Visible = False

Worksheets("M2回收率").Visible = False

Worksheets("跑出后的數(shù)據(jù)").Visible = False

Worksheets("批量處理").Visible = False

End Sub


(5)值化排序 保存表格、并另存到指定位置

Sub 值化排序()'值化排序 保存表格、并另存到指定位置 功能(xiaolei)

t = Timer '對所有表格進(jìn)行值化
Dim sht As Worksheet '定義 sht As Worksheet
For Each sht In Worksheets '循環(huán)體
With sht
.UsedRange.Copy '復(fù)制
.UsedRange.PasteSpecial xlPasteValues '粘貼
End With
Application.CutCopyMode = False '清空剪貼板 在復(fù)制或者剪切了大量內(nèi)容后關(guān)閉文件,如果不寫上這句代碼,會(huì)出現(xiàn)提示窗口:是否保存手復(fù)制的內(nèi)容到剪貼板,以便下次使用。這時(shí)文件不能自動(dòng)關(guān)閉,必須手動(dòng)關(guān)閉提示框才關(guān)閉文件。
Next
'Worksheets("反饋匯總").Visible = False '隱藏表格"反饋匯總明細(xì)"
Worksheets("實(shí)際回款明細(xì)表(刷)").Visible = False '隱藏表格
Worksheets("分案明細(xì)").Visible = False
Worksheets("回款明細(xì)匯總").Visible = False
Range("C3:F5").Select '選擇對象數(shù)據(jù)匯總這個(gè)sheet 的C3:F5列所在區(qū)域,對區(qū)域"C3:F5"進(jìn)行排序

'benyuechujiezhidaozuotiangechanpinhuishouqingkuang
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Add Key:=Range("F4:F5"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal '清空排序集合清空當(dāng)前內(nèi)存中Sort命令已經(jīng)記錄的數(shù)據(jù),并做初始化設(shè)置
With ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort
.SetRange Range("C3:F5")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With '對F4:F6進(jìn)行數(shù)值降序排序

'benyuexindaiM2cuishouzhuanyuanhuishouqingkuang
Range("H3:L9").Select '選擇對象數(shù)據(jù)匯總這個(gè)sheet 的H3:L9列所在區(qū)域
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Add Key:=Range("L4:L9"), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal '清空排序集合清空當(dāng)前內(nèi)存中Sort命令已經(jīng)記錄的數(shù)據(jù),并做初始化設(shè)置
With ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort
    .SetRange Range("H3:L9")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With '對F3:F9進(jìn)行數(shù)值降序排序

'benyuefenqiM2cuishouzhuanyuanhuishouqingkuang
Range("N3:R6").Select '選擇對象數(shù)據(jù)匯總這個(gè)sheet 的N3:R6列所在區(qū)域
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Add Key:=Range("R4:R6"), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal '清空排序集合清空當(dāng)前內(nèi)存中Sort命令已經(jīng)記錄的數(shù)據(jù),并做初始化設(shè)置
With ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort
    .SetRange Range("N3:R6")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With '對N3:R6進(jìn)行數(shù)值降序排序
'ActiveWindow.ScrollColumn=4表示活動(dòng)窗口滾動(dòng)到那一列
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Add Key:=Range("F4:F5"), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort
    .SetRange Range("C3:F5")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
Range("H3:L9").Select
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Add Key:=Range("L4:L9"), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort
    .SetRange Range("H3:L9")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
Range("N3:R6").Select
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort.SortFields.Add Key:=Range("R4:R6"), _
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("數(shù)據(jù)匯總").Sort
    .SetRange Range("N3:R6")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1

MsgBox Timer - t & "秒完成" '顯示代碼完成所耗的時(shí)間
End Sub

Sub 保存表格并另存到指定位置()
ThisWorkbook.Save '保存當(dāng)前工作簿
tn = ThisWorkbook.Name '當(dāng)前工作簿名稱
tp = ThisWorkbook.Path '當(dāng)前工作簿位置
tx = "E:***\10月信貸及分期M2(業(yè)績報(bào)表)" '另存為工作簿的路徑

Sheets("數(shù)據(jù)匯總").Select '選定工作表
datenum = Application.WorksheetFunction.Text(Range("A2"), "yyyymmdd") '日期(文件名后綴)

Application.DisplayAlerts = False
'ThisWorkbook.SaveAs Filename:=tp & "" & "8月信貸M2及M2+業(yè)績報(bào)表" & "(" & datenum & ")" & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False '在當(dāng)前工作簿位置保存并命名
ThisWorkbook.SaveAs Filename:=tx & "" & "10月信貸及分期M2業(yè)績報(bào)表" & "(" & datenum & ")" & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False '在指定位置保存
Application.DisplayAlerts = True

End Sub
Sub 合并()
值化排序
保存表格并另存到指定位置
End Sub


(6)復(fù)制、分類回款明細(xì)

Sub 復(fù)制() '主要功能是把實(shí)際回款明細(xì)表(刷)數(shù)據(jù)復(fù)制粘貼到回款明細(xì)匯總
Worksheets("回款明細(xì)匯總").Range("A:C").ClearContents '清空回款明細(xì)匯總這個(gè)sheet 的A-C列數(shù)據(jù)

'信貸回款數(shù)據(jù)B:D列
Worksheets("實(shí)際回款明細(xì)表(刷)").Select '選擇對象實(shí)際回款明細(xì)表(刷)
Columns("B:D").Copy '復(fù)制B到D列'
Worksheets("回款明細(xì)匯總").Select '選擇對象回款明細(xì)匯總
Range("a1").Select '從a1單元格開始粘貼
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '不帶格式粘貼(粘貼值)
Application.CutCopyMode = False ' 釋放剪貼板內(nèi)容
'rowmax = Worksheets("回款明細(xì)匯總").Range("A1").CurrentRegion.Rows.Count '選擇最大行

'分期回款數(shù)據(jù)G2:I2列
rowmax = Worksheets("回款明細(xì)匯總").Range("A65536").End(xlUp).Row '選擇有數(shù)據(jù)最大行
Worksheets("實(shí)際回款明細(xì)表(刷)").Select '選擇對象實(shí)際回款明細(xì)表(刷)
Range("G2:I2").Select
Range(Selection, Selection.End(xlDown)).Select '復(fù)制g-i列有數(shù)據(jù)區(qū)域
Selection.Copy

'繼續(xù)粘貼分期回款數(shù)據(jù)(在信貸回款數(shù)據(jù)基礎(chǔ)上繼續(xù)粘貼)
Worksheets("回款明細(xì)匯總").Select
Range("A" & (rowmax + 1)).Select '從A列有數(shù)據(jù)下一行開始粘
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'復(fù)制粘貼字段包括催收員工號(hào) 催收員 組長 經(jīng)理 type 分案日期 還款日期是否在委案日期內(nèi)
irow = Worksheets("回款明細(xì)匯總").Range("A" & Cells.Rows.Count).End(xlUp).Row '有數(shù)據(jù)的最大行數(shù),包括中間有空值的'
Worksheets("回款明細(xì)匯總").Range("D4:J4").Select '選擇范圍(帶公式的區(qū)域)
Selection.AutoFill Destination:=Worksheets("回款明細(xì)匯總").Range("D4:J" & irow), Type:=xlFillDefault '向下填充公式至有數(shù)據(jù)的最大行
End Sub
Sub 分類回款明細(xì)() '主要功能是拆分信貸M2及分期M2對應(yīng)的專員催收名單
'信貸M2
irow = Worksheets("回款明細(xì)匯總").Range("a1").CurrentRegion.Rows.Count '最大行行數(shù)
Worksheets("回款明細(xì)匯總").Range("A1:J" & irow).AutoFilter field:=10, Criteria1:="是" '篩選第10列,并且選擇條件=是
Worksheets("回款明細(xì)匯總").Range("A1:J" & irow).AutoFilter field:=8, Criteria1:="信貸M2" '篩選第8列,并且選擇條件=信貸M2
Worksheets("回款明細(xì)匯總").Range("A:G").Copy '執(zhí)行復(fù)制
Sheets("分類回款明細(xì)【不含離職人員及手工】").Select '選擇對象分類回款明細(xì)【不含離職人員及手工】
Range("B2").Select '選項(xiàng)對象B2列
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '非格式化粘貼(僅僅粘貼數(shù)字)
Worksheets("回款明細(xì)匯總").Rows("1:1").AutoFilter '關(guān)閉篩選'
Application.CutCopyMode = False '退出粘貼

'分期M2
Worksheets("回款明細(xì)匯總").Range("A1:J" & irow).AutoFilter field:=10, Criteria1:="是" '篩選第10列,并且選擇條件=是
Worksheets("回款明細(xì)匯總").Range("A1:J" & irow).AutoFilter field:=8, Criteria1:="分期M2" '篩選第8列,并且選擇條件=分期M2
Worksheets("回款明細(xì)匯總").Range("A:G").Copy '執(zhí)行復(fù)制
Sheets("分類回款明細(xì)【不含離職人員及手工】").Select '選擇對象分類回款明細(xì)【不含離職人員及手工】
Range("J2").Select '選項(xiàng)對象J2列
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '非格式化粘貼(僅僅粘貼數(shù)字)
Worksheets("回款明細(xì)匯總").Rows("1:1").AutoFilter '關(guān)閉篩選'
Application.CutCopyMode = False '退出粘貼

'Worksheets("回款明細(xì)匯總").Range("A1:J" & irow).AutoFilter field:=10, Criteria1:="是" '篩選第10列
'Worksheets("回款明細(xì)匯總").Range("A1:J" & irow).AutoFilter field:=8, Criteria1:="信貸M2+"
'Worksheets("回款明細(xì)匯總").Range("A:G").Copy
'Sheets("分類回款明細(xì)【不含手工】").Select
'Range("R2").Select
' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Worksheets("回款明細(xì)匯總").Rows("1:1").AutoFilter '關(guān)閉篩選'
'Application.CutCopyMode = False '退出粘貼
End Sub
Sub 刷新()
復(fù)制
分類回款明細(xì)
End Sub


(7)主要執(zhí)行fenqi表清空、篩選、選擇最大行 、復(fù)制、粘貼、排序、排名、新 插入一列、循環(huán)判斷、日期格式、自動(dòng)調(diào)整列寬、調(diào)整百分比、隱藏各個(gè)輔助表功能

Sub seperate_worksheets()

Application.ScreenUpdating = False

'清空區(qū)域

Worksheets("總回收率輔表").Columns("A:K").Clear

Worksheets("M1_1回收率").Columns("A:J").ClearContents

Worksheets("M1_2回收率").Columns("A:J").ClearContents

Worksheets("M2_1回收率").Columns("A:J").ClearContents

Worksheets("M2_2回收率").Columns("A:J").ClearContents

Worksheets("M3回收率").Columns("A:J").ClearContents

Worksheets("總回退輔表").Columns("b:K").ClearContents

Worksheets("M1-1").Columns("A:K").ClearContents

Worksheets("M1-2").Columns("A:k").ClearContents

Worksheets("M2-1").Columns("A:k").ClearContents

Worksheets("M2-2").Columns("A:k").ClearContents

Worksheets("M3").Columns("A:k").ClearContents

'Call match

'If Worksheets("總回收率").Range("n3") = False Then
'MsgBox ("存在誤差,請核實(shí)"): Exit Sub
'Else: MsgBox Range("N3").Value & "數(shù)據(jù)無誤,繼續(xù)執(zhí)行"

'End If

'調(diào)整格式

Worksheets("總回收率").Select

Y = Range("A1").CurrentRegion.Rows.Count

Worksheets("總回收率").Select

Set edg = Range("A1:J" & Y)

Range("H2:H" & Y).Select

Selection.NumberFormatLocal = "0.00%"

edg.Copy

Worksheets("總回收率輔表").Select

Worksheets("總回收率輔表").Range("A1").Select

ActiveSheet.Paste

Worksheets("總回收率輔表").Select

Columns("F:F").Insert Shift:=xlToRight '在列(“F:F”)。插入移位:=xlToRight

X = Range("A1").CurrentRegion.Rows.Count '選擇最多行

Range("F1") = "經(jīng)理" '命名F列表頭"經(jīng)理"

Set rng = Range("A1:J" & X) '設(shè)置范圍

For lkk = 2 To X ' 循環(huán)體

If rng(lkk, 5) = "陳新" Then '在循環(huán)體里面判斷,如果在第(lkk, 5)五列任何一列的數(shù)據(jù)等于‘陳新’則,在第六列任何行對應(yīng)寫上劉慧
rng(lkk, 6) = "劉慧"

        ElseIf rng(lkk, 5) = "史夕陽" Then
        rng(lkk, 6) = "童超"

            ElseIf rng(lkk, 5) = "劉易新" Then
            rng(lkk, 6) = "童超"
    
                ElseIf rng(lkk, 5) = "許國朝" Then
                rng(lkk, 6) = "童超"
    
                    ElseIf rng(lkk, 5) = "嚴(yán)璐" Then
                    rng(lkk, 6) = "喬雨"
    
                        ElseIf rng(lkk, 5) = "費(fèi)小翔" Then
                        rng(lkk, 6) = "喬雨"
    
                            ElseIf rng(lkk, 5) = "陸再婷" Then
                            rng(lkk, 6) = "劉慧"
                    
                                ElseIf rng(lkk, 5) = "尚靜" Then
                                rng(lkk, 6) = "劉慧"
                    
                                    ElseIf rng(lkk, 5) = "馬玉銘" Then
                                    rng(lkk, 6) = "劉慧"
                    
                                ElseIf rng(lkk, 5) = "蔣鵬" Then
                                rng(lkk, 6) = "童超"
                    
                            ElseIf rng(lkk, 5) = "李偉" Then
                            rng(lkk, 6) = "喬雨"
                                                                                
                        ElseIf rng(lkk, 5) = "張程" Then
                        rng(lkk, 6) = "喬雨"
                                                    
                    ElseIf rng(lkk, 5) = "舒陽" Then
                    rng(lkk, 6) = "喬雨"
       
                ElseIf rng(lkk, 5) = "石婷" Then
                rng(lkk, 6) = "童超"
            
            ElseIf rng(lkk, 5) = "嵇婷" Then
            rng(lkk, 6) = "喬雨"
            
        ElseIf rng(lkk, 5) = "王唯" Then
        rng(lkk, 6) = "喬雨"
            
    ElseIf rng(lkk, 5) = "馮雪" Then
    rng(lkk, 6) = "喬雨"
           
End If

Next

rng.Sort key1:="實(shí)際回款金額", order1:=xlDescending, Header:=xlYes '按實(shí)際回款金額降序排序

'循環(huán)的目的是J列排名
Worksheets("總回收率輔表").Select '選擇對象

For i = 2 To X '循環(huán)體

Range("J" & i) = i - 1

Next

Range("J:J").Select '選擇對象

Selection.NumberFormatLocal = "G/通用格式" '設(shè)置J列格式

'回收率拆分至各子表
'表1

Worksheets("總回收率輔表").Select '選擇對象

Range("A1:J" & X).AutoFilter field:=4, Criteria1:="M1-1" '篩選第四列=M1-1的數(shù)據(jù)

rng.Copy '復(fù)制

Worksheets("M1_1回收率").Select '選擇對象

Worksheets("M1_1回收率").Range("A1").Select '選擇對象A1

ActiveSheet.Paste '執(zhí)行粘貼

Application.CutCopyMode = False '釋放粘貼版

Worksheets("M1_1回收率").Select '選擇對象
aaa = Worksheets("M1_1回收率").Range("A1").CurrentRegion.Rows.Count '選擇最大行
'循環(huán)體最要排名
For pp = 2 To aaa

Range("J" & pp) = pp - 1

Next pp

'表2

Worksheets("總回收率輔表").Select '選擇對象

Range("A1:J" & X).AutoFilter field:=4, Criteria1:="M1-2" '篩選第四列=M1-2的數(shù)據(jù)

rng.Copy '復(fù)制

Worksheets("M1_2回收率").Select '選擇對象

Worksheets("M1_2回收率").Range("A1").Select '選擇對象A1

ActiveSheet.Paste '執(zhí)行粘貼

Application.CutCopyMode = False '釋放粘貼版

Worksheets("M1_2回收率").Select '選擇對象

B = Range("A1").CurrentRegion.Rows.Count '選擇最大行

'循環(huán)體最要排名
For i1 = 2 To B

Range("J" & i1) = i1 - 1

Next

'建立回退輔表

Worksheets("總回退").Select '選擇對象

p = Range("A1").CurrentRegion.Rows.Count '選擇最大行

Range("G2:H" & p).Select '選擇最大行G2:H的區(qū)域

Selection.NumberFormatLocal = "yyyy/mm/dd" '設(shè)置日期格式y(tǒng)yyy/mm/dd

Worksheets("總回退").Columns("A:J").Copy '復(fù)制選定區(qū)域

Worksheets("總回退輔表").Select '選擇對象

Worksheets("總回退輔表").Range("B1").Select '選擇對象B1
'不帶格式粘貼
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False

'回退數(shù)據(jù)整理格式

Worksheets("總回退輔表").Select '選擇對象

f = Range("B1").CurrentRegion.Rows.Count '選擇最大行
   
Set rw = Range("B1:K" & f) '定義rw = Range("B1:K" & f)

Range("H2:I" & f).Select '選擇最大行

Selection.NumberFormatLocal = "yyyy/m/d" '調(diào)整日期格式

'回退數(shù)據(jù)拆分至各子表

'表1

Range("B1:M" & f).AutoFilter field:=4, Criteria1:="M1-1" '篩選第四列=M1-1的數(shù)據(jù)

rw.Copy '復(fù)制

Worksheets("M1-1").Select '選擇對象

Worksheets("M1-1").Range("A1").Select '選A1擇對象

ActiveSheet.Paste '粘貼

Application.CutCopyMode = False '釋放剪貼板

Worksheets("M1-1").Columns("A:L").EntireColumn.AutoFit '調(diào)整所有列的列寬為自動(dòng)列寬
'表2

Worksheets("總回退輔表").Select '選擇對象

Range("B1:M" & f).AutoFilter field:=4, Criteria1:="M1-2" '篩選第四列=M1-2的數(shù)據(jù)

rw.Copy '復(fù)制

Worksheets("M1-2").Select '選擇對象

Worksheets("M1-2").Range("A1").Select '選A1擇對象

ActiveSheet.Paste '粘貼

Application.CutCopyMode = False '釋放剪貼板
Worksheets("M1-2").Columns("A:L").EntireColumn.AutoFit '調(diào)整所有列的列寬為自動(dòng)列寬

Application.CutCopyMode = False '釋放剪貼板

'釋放已定義內(nèi)存
Set edg = Nothing

Set rw = Nothing

Set rng = Nothing

Worksheets("總回收率輔表").Range("A1:J1").AutoFilter '自動(dòng)篩選

Worksheets("總回退輔表").Range("B1:M1").AutoFilter '自動(dòng)篩選

Worksheets("總回退輔表").Visible = False '隱藏附表

Worksheets("總回收率輔表").Visible = False '隱藏附表

Worksheets("總回退").Visible = False '隱藏附表

Worksheets("總回收率").Visible = False '隱藏附表

Worksheets("跑出的數(shù)據(jù)").Visible = False '隱藏附表

Worksheets("批量添加").Visible = False '隱藏附表

Worksheets("M2-1").Visible = False '隱藏附表

Worksheets("M2_1回收率").Visible = False '隱藏附表

Worksheets("M2-2").Visible = False '隱藏附表

Worksheets("M2_2回收率").Visible = False '隱藏附表

Worksheets("M3").Visible = False '隱藏附表

Worksheets("M3回收率").Visible = False '隱藏附表

Worksheets("異常處理").Visible = False '隱藏附表

Worksheets("輔助添加").Visible = False '隱藏附表

Worksheets("組長排名").Select '選擇對象

Application.ScreenUpdating = True '不隱藏附表

End Sub

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • VBA訂制工具欄 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴寫字的地方閱讀 2,359評論 0 0
  • (1) Option Explicit '強(qiáng)制對模塊內(nèi)所有變量進(jìn)行聲明 (2) Option Base 1 '指定...
    紀(jì)同學(xué)說閱讀 14,435評論 0 5
  • 今天學(xué)習(xí)了下xlwings這個(gè)庫,目的是為了讓計(jì)算機(jī)自動(dòng)化操作excel表,當(dāng)某天需要做一些很繁瑣的事情,就可以派...
    你就像只鐵甲小寶閱讀 3,171評論 2 83
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時(shí),會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 6,026評論 0 9
  • 1.1 VBA是什么 直到90年代早期,使應(yīng)用程序自動(dòng)化還是充滿挑戰(zhàn)性的領(lǐng)域.對每個(gè)需要自動(dòng)化的應(yīng)用程序,人們不得...
    浮浮塵塵閱讀 22,159評論 6 49

友情鏈接更多精彩內(nèi)容