Excel VBA - установить диапазон отфильтрованной таблицы видимых ячеек - PullRequest
0 голосов
/ 03 июля 2019

Я использую этот код для установки диапазона отфильтрованной таблицы только для видимых ячеек.

Set rngMyRange = Selection.SpecialCells(xlCellTypeVisible)

Однако, если выбрана только одна ячейка, возникает странная ошибка, то есть код выбирает всеиспользуемый диапазон в отфильтрованной таблице.

Если выделение больше, чем одна ячейка, то код работает должным образом.Это можно обойти?

1 Ответ

0 голосов
/ 04 июля 2019

Обычно использование «Выбор» не является хорошей практикой; Я предполагаю, что вам просто нужно получить диапазон видимых ячеек, для которых вы можете легко использовать это:

Sub GetVisibleRangeOnly()
    Dim tbl As ListObject
    Dim rng As Range

    'change the name of the table and worksheet as you need
    Set tbl = Worksheets("Sheet1").ListObjects("Table1")

    'Note: if there is no visible cell after filtraton rng IS NOTHING will be TRUE
    Set rng = tbl.DataBodyRange.SpecialCells(xlCellTypeVisible)

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