Карти отмечает, что ему часто нужно использовать Go To Special, чтобы выбрать только видимые ячейки в выделенной области. Это заставляет его задуматься, есть ли способ выделения таких ячеек в макросе.

Существует множество способов выбора только видимых ячеек без макроса, но здесь мы не будем останавливаться на них. Предполагается, что вы хотите выбрать видимые ячейки как часть большого макроса, который вы, возможно, создаете. Например, вам может потребоваться выбрать видимые ячейки перед выполнением какого-либо форматирования или перед обработкой ячеек каким-либо другим способом.

Чтобы выбрать только видимые ячейки из диапазона выбранных ячеек, вы можете использовать следующую строку кода:

Selection.SpecialCells(xlCellTypeVisible).Select

Если вам нужно поработать с каким-то другим начальным диапазоном ячеек, прежде чем выбирать видимое подмножество этих ячеек, все, что вам нужно сделать, это изменить часть строки «Выбор». Например, вы можете выбрать видимые ячейки в используемом диапазоне рабочего листа, используя эту строку:

ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Select

Точно так же вы можете выбрать все видимые ячейки на всем листе, используя эту строку:

Cells.SpecialCells(xlCellTypeVisible).Select

Имейте в виду, что описанные выше методы выбирают все видимые ячейки, даже если они находятся за пределами экрана. Другими словами, методы выбирают любые не скрытые ячейки на листе. Если вы действительно хотите выбрать только те не скрытые ячейки, которые видны на экране в текущий момент, вы можете использовать другой метод:

Intersect(MyRange, ActiveWindow.VisibleRange).SpecialCells(xlCellTypeVisible)

Код начинается с выбора только тех ячеек, в которых заданный диапазон (в данном случае «MyRange») пересекается с видимым диапазоном ячеек в активном окне. Эти ячейки дополнительно отсеиваются с помощью коллекции SpecialCells, чтобы гарантировать, что используются только не скрытые ячейки.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (8524) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Selecting_Visible_Cells_in_a_Macro [Выбор видимых ячеек в макросе].