Excel-Macro将序列号填充到过滤的数据

我有3列A,B和C.数据是在B&C。我筛选列C以显示“唯一的logging只”。 现在我想在序列号A中添加序列号。请注意,列表中的行数(以及过滤后的列表)是不固定的。 我知道函数(= SUBTOTAL(3,$ B $ 1:B2)-1),但这需要手动干预。 我还发现了在未经过滤的列表上工作的VBA代码:

Sub FillSerialNumbers() With Range("A3:A" & Range("B" & Rows.Count).End(xlUp).Row) .Cells(1, 1).Value = 1 .DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1, Trend:=False End With End Sub 

但是我无法在筛选列表上实现它。 任何帮助,将不胜感激。

这是另一种方式

  Set rRng = Range("A3:A" & Range("B" & Rows.Count).End(xlUp).Row) Dim cntr As Integer: cntr = 1 For Each cell In rRng If cell.EntireRow.Hidden = False Then Cells(cell.Row, 1).Value = cntr cntr = cntr + 1 End If Next 

作为公式解决scheme,您可以尝试在单元格A3中复制下来:

 =IF(AND(COUNTIF(C$3:C3,C3)=1,C3<>""),max(A$2:A2)+1,"")