Проверьте, есть ли «1» в столбце, если есть, то фильтр - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть этот код, который позволяет мне искать строку и, если она есть, то фильтровать по этой строке, но если ее там нет, ничего не делать.

Dim Findvalue As String
Dim Rng As Range
Findvalue = "1"

 With ws.Range("K:K")
      Set Rng = .Find(What:=Findvalue, _
                  After:=.Cells(.Cells.Count), _
                  LookIn:=xlValues, _
                  LookAt:=xlWhole, _
                  SearchOrder:=xlByRows, _
                  SearchDirection:=xlNext, _
                  MatchCase:=False)
             If Not Rng Is Nothing Then
                  ws.Range("K4").AutoFilter _
                  Field:=11, _
                  Criteria1:="1"

             Else
                Exit Sub
             End If
 End With

Это работает, если значение это буква, но не работает, когда это число.

1 Ответ

1 голос
/ 03 февраля 2020

Метод поиска часто имеет проблемы с форматированием; Вы можете попробовать с

Dim Findvalue As String

Findvalue = "1"
With ws
   If Application.WorksheetFunction.CountIf(.Range("K:K"), Findvalue) > 0 Then
        .Range("K4").AutoFilter _
        Field:=11, _
        Criteria1:="1" 'Criteria1:=Findvalue ?
   End If
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...