Страницы: 1
RSS
Макрос для одновременного удаления фильтра на листе,отображения скрытых строк и/или столбцов
 
Всем доброго времени суток, пытаюсь по чуть чуть изучать азы VBA, но знаний нет практически. Поэтому обращаюсь к форумчанам за помощью.
Есть вот такой макрос:
Скрытый текст

Суть его в том что бы он убирал все фильтры на листе, показывал скрытые столбцы и строки (если таковые есть) и копировал нужный мне диапазон..
Загвоздка сейчас в том если есть скрытые строки или столбцы макрос нужно дважды вызвать, что бы отобразились скрытые данные...Подскажите как изменить макрос.. Данный макрос запускаться будет из персональной книги макросов (надеюсь правильно обозвал ее). Всем спасибо за будущую помощь.
Изменено: Mershik - 19.06.2019 11:42:11
Не бойтесь совершенства. Вам его не достичь.
 
Добрый день. На мой взгляд, это происходит потому, что при первом запуске у вас Selection (выделение) размером в лучшем случае в 1 ячейку. Внутри этого Selection - нет скрытых столбцов и скрытых строк, поэтому инструкции по их отображению
Код
Selection.EntireColumn.Hidden = False
    Selection.EntireRow.Hidden = False
не справляются.
Предлагаю вместо Selection указывать используемый диапазон листа, уж скрытые строки столбцы в него явно попадают:
Код
    ActiveSheet.UsedRange.EntireColumn.Hidden = False
    ActiveSheet.UsedRange.EntireRow.Hidden = False

А также предлагаю в конец кода вставить инструкцию, убирающую маркировку выделения (бегущих муравьев)
Код
Application.CutCopyMode=False
'а потом включить обновление экрана
Кому решение нужно - тот пример и рисует.
 
Пытливый, спасибо большое !

а по Помогло, только вот
Цитата
Пытливый написал:
Application.CutCopyMode=False'а потом включить обновление экрана
если это добавлю в макрос получается, что при нажатии на CTRL+V ничего не копируется... а мне нужно потом ручным методом вставить в другой файл...
Не бойтесь совершенства. Вам его не достичь.
 
А, ну тогда, конечно, не нужна она, инструкция эта.
А чего руками, можно же машину заставить? :)
Кому решение нужно - тот пример и рисует.
 
Пытливый, вот я и хочу заставить это делать машину... но так как в макросах я  не Бум-бум... поэтапно пытаюсь то что я руками делаю делать не руками). Пока дошел до того что скопировал и перешел в книгу в которую нужно вставить..)
Изменено: Mershik - 19.06.2019 12:42:39
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
Пока дошел до того что скопировал и перешел в книгу в которую нужно вставить
Можно так
Код
Range("B5:" & BukvaStolbca & Cells(Rows.Count, 1).End(xlUp).Row).Copy _
    Workbooks("Имя книги").Worksheets("Имя листа").Range("первая ячейка диапазона в который вставляем")

, если с формулами, если значения, то можно через массив, ночерез массив немного иной код будет
Изменено: Nordheim - 19.06.2019 13:17:45
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, да думаю можно, но уже другую тему нужно создавать так как там предварительно нужно проверить количество вставляемых строк по условию с теми что уже есть... вообщем поэтому поэтапно.. но Вам Пытливый, и Nordheim, большое спасибо.
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, для примера по вопросу о строках нужно был показать все 190 столбцов?
Такие данные не представляют какой-то конфиденциальной информаци?
Страницы: 1
Наверх