Попробуйте этот код:
Sub ExcelVBA_CurrentValuecu_Filter()
With ThisWorkbook.ActiveSheet
.Range(.Cells(1, ActiveCell.Column), .Cells(.Rows.Count, ActiveCell.Column).End(xlUp)). _
AutoFilter Field:=1, Criteria1:=ActiveCell.Value
End With
End Sub
Оператор .Cells(.Rows.Count, ActiveCell.Column).End(xlUp)
найдет последнюю ячейку в вашем столбце, в которой есть данные. Я использовал блок With
, чтобы правильно определить все диапазоны, которые вы используете в своем коде. Вот почему перед .Cells
стоит точка .
. Это то же самое, что всегда писать ActiveSheet.Cells
.