Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 筛选并统计3列之间的匹配项_Vba_Excel - Fatal编程技术网

Vba 筛选并统计3列之间的匹配项

Vba 筛选并统计3列之间的匹配项,vba,excel,Vba,Excel,我有一个包含13列的表,其中包含可变数据,我需要按以下方式进行筛选: 日期、批号、行、操作员和订单号。 这张桌子看起来像这样: DATE QUANTITY LOT NUMBER LINE OPERATOR ORDER NUM. WAREHOUSE may/12 10:05 423 8765432 first juan 924324 1 may/12 10:07

我有一个包含13列的表,其中包含可变数据,我需要按以下方式进行筛选: 日期、批号、行、操作员和订单号。 这张桌子看起来像这样:

DATE         QUANTITY  LOT NUMBER    LINE      OPERATOR    ORDER NUM.    WAREHOUSE    
may/12 10:05    423     8765432      first       juan          924324         1    
may/12 10:07    377     76543342     first       james         6435235        1    
may/12 10:05    123     543563       second      juan          924324         1    
may/12 10:06    214     523535235    third       jack          54353          1
我需要在另一列中选择并复制操作员处理不同订单的次数、行数、订单号和日期(但我可以跳过小时)

信息总是可变的,但我需要按订单号筛选firstable

有什么想法吗? 多谢各位


我使用了这个宏:

Sub dOrders()
Application.ScreenUpdating = False
Dim x As Range
Dim rng As Range
Dim last As Long
Dim sht As String
    sht = ActiveSheet.Name
    last = Cells(Rows.Count, 1).End(xlUp).Row    
Set rng = Sheets(sht).Range("A1:N" & last)

Sheets(sht).Range("J2:J" & last).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("V1"), Unique:=True
For Each x In Range([V2], Cells(Rows.Count, "V").End(xlUp))

With rng
.AutoFilter
.AutoFilter Field:=10, Criteria1:=x.Value


  .SpecialCells(xlCellTypeVisible).Copy
     'Sheets.Add(After:=Sheets(Sheets.Count)).Name = x.Value
       'ActiveSheet.Paste
'我之所以对其进行评论,是因为我希望它像filtre my table一样粘贴在同一张表中,只需将筛选数据粘贴到X列中,即可查看操作员按日期执行的订单数量

End With
    Next x

Sheets(sht).AutoFilterMode = False

With Application
.CutCopyMode = False
.ScreenUpdating = True
End With
End Sub

我还使用这个宏来计算:

Sub QuantityOf()
'Finds the last non-blank cell in a single row or column

Dim lrow As Long
Dim lCol As Long

    'Find the last non-blank cell in column A(1)
    lrow = Cells(Rows.Count, 22).End(xlUp).Row

    'Find the last non-blank cell in row 1
    'lCol = Cells(, Columns.Count).End(xlToLeft).Column

    MsgBox "The number is: " & lrow & " -1 " & vbNewLine

End Sub

建议您在执行筛选操作时尝试录制宏,请参阅,在清理代码后,如果/当遇到问题时,请询问有关该问题的特定问题。@gmalc我更改了我的设置question@urdearboy我改变了我的问题你可以保留数据,添加宏或触发器(按钮)按所需方式排序或删除排序。按照您描述的方式,它是一种单行排序,但一旦按顺序对它进行排序,您就可以始终按另一个字段进行排序。如果需要新的格式化数据表,您可以随时排序、复制、粘贴或删除排序。@wookies会编写代码我知道我可以做到,但我不知道如何做到。无论如何谢谢你