获取过滤行数并将结果粘贴到列中

时间:2021-06-29 00:12:41

标签: vba count advanced-filter

我有一个包含地址和相关信息(包括州)的工作表。我想按州过滤工作表并计算过滤的行数,将该行数粘贴到相邻列中的州缩写旁边: StateIN RCount

我可以获取代码以自动过滤并列出工作表中使用的所有状态,但我无法弄清楚如何告诉 Excel 我希望它为我提供每个过滤行的数量(减去标题行)州列出。我已经尝试了几件事,但这基本上是我正在使用的代码:

'filter and copy individual state data from vqueue worksheet to state worksheet
   Application.ScreenUpdating = False
   Dim x As Range
   Dim rng As Range
   Dim lastRow As Long
   Dim sht As String
   Dim LR As Long
   LR = Range("A" & Rows.Count).End(xlUp).Row
   

'specify sheet name in which the data is stored
   sht = "vqueue"

'change filter column in the following code
   lastRow = Sheets(sht).Cells(Rows.Count, "J").End(xlUp).Row
   Set rng = Sheets(sht).Range("A1:AC" & lastRow)

   Sheets(sht).Range("J1:J" & lastRow).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("AD1"), Unique:=True

   For Each x In Range([AD2], Cells(Rows.Count, "AD").End(xlUp))
      With rng
        .AutoFilter
        .AutoFilter Field:=10, Criteria1:=x.Value
        Range("AE" & x).Value = ws.AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count
                
        .SpecialCells(xlCellTypeVisible).Copy
        Sheets.Add(After:=Sheets(Sheets.Count)).Name = x.Value
        ActiveSheet.Paste
      End With
   Next x

我不完全确定我什至将它放在 for/with 循环中的正确位置。目前,我收到 424 Object required 错误。在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

考虑到您只需要计算符合特定条件的操作系统记录数,我建议仅使用公式来处理这种情况,而不是使用 VBA。您可以使用 COUNTIFCOUNTIFS 函数。如果您使用的是最新版本的 Excel,您还有一个 FILTER 函数,可用于根据指定条件动态生成状态列表,然后使用计数函数之一获取记录计数.

相关问题