Исключение только в том случае, если данные не фильтруются - PullRequest
0 голосов
/ 10 февраля 2019

Мой код vba должен выполняться только в строках, которые видны после фильтрации.

Мой код должен возвращать msgbox (и выполнять другие действия) для каждой строки в моей таблице1.Если строка «отфильтрована» и, следовательно, не показана, код должен перейти к следующей строке, без отображения msgbox и т. Д.

Таблица1 выглядит следующим образом:

Имя FatherName Zip

Питер Карл 3200

Джейкоб Эрик 2800

Кристиан Карл 3400

Я пытался пропустить строки с higth = 0 или FullRow.Hidden, но без успеха.

Я уверен, что делаю простую вещь неправильно.Но, пожалуйста, совет

Dim i As Integer
    Range("Tabel1[[#Headers],[Name]]").Select
For i = 1 To 3
MsgBox ("hey")
Next i

Коды показывают окно сообщения для всей строки, независимо от того, отфильтрованы они или нет.

1 Ответ

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

используйте SpecialCells() для DataBodyRange нужного столбца вашей таблицы

Dim rng As Range

For Each rng In ActiveSheet.ListObjects("Tabel1").ListColumns("Name").DataBodyRange.SpecialCells(xlCellTypeVisible)
    MsgBox ("hey from row " & rng.Row)
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...