Автофильтрация не работает с VBA и критериями в виде текста - PullRequest
0 голосов
/ 22 января 2019

У меня есть таблица с продуктами. Иногда некоторые продукты могут быть недоступны.

Итак, я создал функцию = iferror (значение ячейки, «ERROR») для отображения слова ERROR.

Теперь в моем VBA у меня есть следующее, чтобы создать автофильтр для отображения всех продуктов, кроме продуктов, содержащих ОШИБКУ

Set tbl = Worksheets("FOR EXPORT").ListObjects("MyTable")
'SET AUTOFILTER
tbl.Range.AutoFilter Field:=3, Criteria1:="<>*ERROR*"

У меня есть

Set tbl = Worksheets("FOR EXPORT").ListObjects("Mytable")
'SET AUTOFILTER
tbl.Range.AutoFilter Field:=3, Criteria1:="<>*ERROR*"

'SET PATH
csvFilePath = "C:\Users\Maindesk\Desktop\CSVFile_" & Format(Date, "ddmmmyyyy") & "_" & Format(Time, "hAM/PM") & ".csv"


Dim VisRng As Range
' set the new Range object to the visible cells of `tbl.Range`
Set VisRng = tbl.Range.SpecialCells(xlCellTypeVisible)
' copy only the visible cells in range to array
tblArr = VisRng.Value


'SET FILE OUTPUT
fNum = FreeFile()
Open csvFilePath For Output As #fNum

For i = 1 To UBound(tblArr)

    rowArr = Application.Index(tblArr, i, 0)
    csvVal = VBA.Join(rowArr, ";")
    Print #1, csvVal

Next

НО я получаю не все продукты, но, тем не менее, вместо 368 - 7 продуктов, я получаю 196 продуктов. Есть 5 ячеек с ОШИБКОЙ и 2 ячейки с пустыми значениями

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