过滤一列中的数据然后计数

我已经录制了一个macros来修改表单。 基本上它做了一些改变,如添加一列移动两列等等。 我感到困惑的是添加一个小的代码,给我一个单独的MO REAL列L中的DL和IDL的总数,并将总数计数在同一工作簿中的“Resultados”中的单元格B17和C17 …关于如何做到这一点的任何想法? 这里是logging的代码:

Option Explicit Sub DefineDL_IDL() Dim wbTHMacro As Workbook, wsRegulares As Worksheet, wsRegularesDemitidos As Worksheet, wsTempActivos As Worksheet, _ wsTempJA As Worksheet, wsTempFit As Worksheet, wsTempDemitidos As Worksheet, wsPS As Worksheet, wsResultados As Worksheet, _ wsDLList As Worksheet, wssheet As Worksheet Sheets("Regulares").Select Columns("J:J").Select Selection.Insert Shift:=xlToRight Range("J1").Select ActiveCell.FormulaR1C1 = "MO REAL" Columns("K:K").Select Selection.Cut Columns("I:I").Select Selection.Insert Shift:=xlToRight Columns("Q:Q").Select Selection.Cut Columns("I:I").Select Selection.Insert Shift:=xlToRight Range("K1").Select Selection.AutoFilter ActiveSheet.Range("A:Z").AutoFilter Field:=11, Criteria1:= _ "INATIVE" Rows("5:5").Select Range("F5").Activate Range(Selection, Selection.End(xlDown)).Select Selection.Delete Shift:=xlUp ActiveSheet.Range("A:Z").AutoFilter Field:=11 Range("L2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],'DL List'!RC[-11]:R[32]C[-10],2,0)" Range("L2").Select Selection.AutoFill Destination:=Range("L2:L5890") Range("L2:L5890").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("L2").Select ActiveSheet.Range("A:Z").AutoFilter Field:=11, Criteria1:="DL" ActiveSheet.Range("A:Z").AutoFilter Field:=12, Criteria1:="#N/A" Range("L23").Select ActiveCell.FormulaR1C1 = "DL" Range("L23").Select Selection.Copy Range("L25").Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Paste Application.CutCopyMode = False ActiveSheet.Range("A:Z").AutoFilter Field:=12 Range("L4").Select ActiveSheet.Range("A:Z").AutoFilter Field:=11, Criteria1:=Array( _ "G&A", "MOH", "IDL", "Other MOH"), Operator:=xlFilterValues ActiveSheet.Range("A:Z").AutoFilter Field:=12, Criteria1:="#N/A" Range("L7").Select ActiveCell.FormulaR1C1 = "IDL" Range("L7").Select Selection.Copy Range("L15").Select Range(Selection, Selection.End(xlDown)).Select ActiveSheet.Paste ActiveSheet.Paste Application.CutCopyMode = False Range("L7").Select ActiveWorkbook.Worksheets("Regulares").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Regulares").AutoFilter.Sort.SortFields.Add Key:= _ Range("K1:K5890"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _ :=xlSortNormal ActiveSheet.Range("A:Z").AutoFilter Field:=12 Range("K2").Select ActiveSheet.Range("A:Z").AutoFilter Field:=11 Range("G2").Select ActiveCell.FormulaR1C1 = "1" Range("G2").Select Selection.Copy Range("J2").Select Range(Selection, Selection.End(xlDown)).Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _ SkipBlanks:=False, Transpose:=False Range("J2").Select Application.CutCopyMode = False End Sub 

如果你正在计算时间“DL”和“IDL”发生…

“DL和IDL

 count_DL = Application.WorksheetFunction.CountIf(ActiveSheet.Range("L:L"), "DL") count_IDL = Application.WorksheetFunction.CountIf(ActiveSheet.Range("L:L"), "IDL") 

在结果表单中粘贴结果

 Worksheets("Resultados").Range("B17") = count_DL Worksheets("Resultados").Range("C17") = count_IDL 

你的问题有点令人困惑,不理解你在做什么的更广泛的图景。 所有你需要做的,以获得一个计数,并把它放在另一张表是:

Sheets(“AnotherSheet”)。Range(“B13”)= Application.WorksheetFunction.CountA(Columns(“G:G”))