Функция фильтра, если данные не соответствуют критериям, выдает ошибку - PullRequest
1 голос
/ 19 июня 2019

Это для текстового поля после обновления.Он будет фильтровать только при значении, превышающем 0. Однако я не могу найти, куда добавить, что он выдает сообщение об ошибке, если значение введено, но не может быть найдено в диапазоне фильтра

If tbAC.TextLength > 0 Then
    AGCN = Rows("1:1").Find(what:="AGC", lookat:=xlWhole).Column
    ActiveSheet.ListObjects("Table1").Range.AutoFilter field:=AGCN, Criteria1:=tbAC
    'Assuming that I'm supposed to add a line of code here, smth along the line of if criteria:="" 
    'Msgbox "Invalid Input"
ElseIf tbAC.TextLength = 0 Then
    tbAC = ""
End If

Успех редактирования!

Private Sub tbAC_AfterUpdate()
Dim AGCN As Long
Dim AGCL As String
Dim Namef As Range

AGCN = Rows("1:1").Find(what:="AGC", lookat:=xlWhole).Column
AGCL = Split(Cells(1, AGCN).Address, "$")(1)


If tbAC.TextLength > 0 Then
    'Set Namef = Range(AGCL:AGCL).Find(tbAC)
    Set Namef = Range(AGCL & ":" & AGCL).Find(tbAC)
    If Namef Is Nothing Then
        MsgBox ("Invalid Input")
    Else
        ActiveSheet.ListObjects("Table1").Range.AutoFilter field:=AGCN, Criteria1:=tbAC
    End If
ElseIf tbAC.TextLength = 0 Then
    tbAC = ""
End If

End Sub

1 Ответ

0 голосов
/ 19 июня 2019

Используйте переменную Variant для AgentCodeN и используйте Application.Match, например:

Option Explicit
Sub test()

    Dim AgentCodeN As Variant

    If tbAC.TextLength > 0 Then
        tbAC = tbAC
        AgentCodeN = Application.Match(Rows("1:1"), "AGC", 0)
        If Not IsError(AgentCodeN) Then
            ActiveSheet.ListObjects("Table1").Range.AutoFilter field:=AGCN, Criteria1:=tbAC
        'Assuming that I'm supposed to add a line of code here, smth along the line of if criteria:=""
        Else
            MsgBox "Invalid Input"
        End If
    ElseIf tbAC.TextLength = 0 Then
        tbAC = ""
    End If

End Sub

Я не знаю, объявили ли вы свои переменные, но использование Option Explicit заставит вас сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...