У меня есть таблица с продуктами. Иногда некоторые продукты могут быть недоступны.
Итак, я создал функцию = 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 ячейки с пустыми значениями