问题描述
我有一个包含地址和相关信息(包括州)的工作表。我想按州过滤工作表并计算过滤的行数,将该行数粘贴到相邻列中的州缩写旁边: 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 错误。在此先感谢您的帮助!
解决方法
考虑到您只需要计算符合特定条件的操作系统记录数,我建议仅使用公式来处理这种情况,而不是使用 VBA。您可以使用 COUNTIF
或 COUNTIFS
函数。如果您使用的是最新版本的 Excel,您还有一个 FILTER
函数,可用于根据指定条件动态生成状态列表,然后使用计数函数之一获取记录计数.