Код VBA для применения фильтра на основе пользовательских полей ввода для буквенно-цифрового столбца и даты - PullRequest
0 голосов
/ 02 июля 2018

Я хотел бы написать код vba, который спрашивает пользователя «по какому столбцу» они хотят фильтровать; а затем «по какой дате» они хотят отфильтровать этот столбец по (т.е. по любой дате после мм / дд / гггг)

Что-то вроде:

Sub FilterByInput()

Dim iPutFound As Range
Dim mycol As String
Dim mydate As String

mycol = Application.InputBox("Enter alpha-numeric of Column to be filtered -ie. AP3", Type:=2)
mycol = Range(mycol & 1).Column
mydate = Application.InputBox("Enter date since last update was ran- mm/dd/yyyy", Type:=2)
Application.ScreenUpdating = False
ActiveSheet.Range("$A$3:$DK$11000").AutoFilter Field:=mycol, Criteria1:=">" & mydate, Operator:=xlFilterValues

'The code will resume with copying and pasting the filtered results to another sheet, etc

End Sub

Я получаю сообщение об ошибке во время выполнения: «Ошибка метода автофильтрации класса диапазона». Моя строка заголовка находится в строке 3. Я пытался отключить фильтры перед запуском кода, но это тоже не сработало. Любая помощь с благодарностью.

Вот что я сделал с правкой:

Dim ws As Worksheet: Set ws = ActiveSheet   
Dim iPutFound As Range  
Dim mycol As String  
Dim myrng As Range  
Dim mydate As String  

mycol = Application.InputBox("Enter alpha-numeric of Column to be filtered -ie. M", Type:=2)  
Set myrng = Range(mycol & 1).Column
mydate = Application.InputBox("Enter date since last update was ran- mm/dd/yyyy", Type:=2)
Application.ScreenUpdating = False
ActiveSheet.Range(mycol & 1).Column.AutoFilter Field:=mycol, Criteria1:=">" & mydate, Operator:=xlFilterValues
...