Проблема фильтрации VBA Scripting.Dictionary - PullRequest
0 голосов
/ 06 февраля 2019

Привет всем, у меня проблема с моим Сценарием словаря.он должен отфильтровывать заданный текст, что он делает, но он также фильтрует числовые значения в столбце (0, 1, 2), который я хочу, чтобы те, которые показаны.

Буду признателен за любую помощь!

'Filter Prefixes
Set arr = CreateObject("scripting.dictionary")
With ActiveSheet
 lr = .Cells(Rows.Count, 1).End(xlUp).Row
 For i = 2 To lr
     Select Case UCase(.Cells(i, "C").Value2)
         Case "NA", "ND", "NH", "NK", "NL", "NQ", "NV"
             'do nothing
         Case Else
             arr.Item(.Cells(i, "C").Value2) = vbNullString
     End Select
 Next i
 .Range("A1:CU" & lr).AutoFilter Field:=3, Criteria1:=arr.keys, 
Operator:=xlFilterValues
End With

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Просто добавьте тест, чтобы увидеть, является ли значение числовым, прежде чем добавить его в словарь фильтра:

 Select Case UCase(.Cells(i, "C").Value2)
     Case "NA", "ND", "NH", "NK", "NL", "NQ", "NV"
         'do nothing
     Case Else
         If Not IsNumeric(.Cells(i, "C").Value2) Then
            arr.Item(.Cells(i, "C").Value2) = vbNullString
         End If
 End Select
0 голосов
/ 07 февраля 2019

Я считаю, что это то, что вы ищете:

arr.Item(CStr(.Cells(i, "C").Value2))

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