itsokay Пользователь Сообщений: 12 |
#1 05.01.2018 22:54:41 Господа, доброго времени суток. Помогите, пожалуйста, вот в таком вопросе :
Теперь вопрос по части как сделать так, что бы после нажатия хоткея отрабатывалось копирование, а потом после выбора нужной ячейки мышью скопированный формат применялся к выбранной ячейке ? Спасибо за ответ. Изменено: itsokay — 05.01.2018 23:09:35 |
||
если Вам интересно изучать программирование — Вы можете экспериментировать с кодом до того времени пока все не получится так, ка Вы того хотите Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
itsokay Пользователь Сообщений: 12 |
#3 05.01.2018 23:29:42
инструмент и вправду есть, тут вопрос в том что хочется на него сделать хоткей так как часто им пользуюсь. |
||
Ігор Гончаренко Пользователь Сообщений: 13746 |
#4 05.01.2018 23:40:40 не знаю что Вы на этом выиграете
вместо Вашего хоткей макроса Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
itsokay Пользователь Сообщений: 12 |
Чудно! Единственный момент это то что приходится дважды нажимать на хоткей (макрос). Задумка была изначально что бы хоткей нажимался один раз (происходит копирование) и потом мышкой выбирается ячейка для вставки формата после чего макрос сам вставляет формат по select мышкой. Как-то так. |
Ігор Гончаренко Пользователь Сообщений: 13746 |
#6 06.01.2018 01:13:59 а теперь это:
Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
itsokay Пользователь Сообщений: 12 |
мы наверное немного не понимаем друг друга. |
согласен взаимопонимание стремится к нулю (на этапе, когда люди разговаривают на разных языках — это нормально) Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
itsokay Пользователь Сообщений: 12 |
#9 07.01.2018 22:32:25
задача макроса свести процесс форматирования к нажатию хоткея + 1 клик мышки. Это должно занимать меньше секунды. В идеале вот так : 4. отмечаете мишью требуемый диапазон |
||
Юрий М Модератор Сообщений: 60588 Контакты см. в профиле |
|
itsokay, фактически Вы хотите хоткей на вызов команды «Формат по образцу». К сожалению, программно активировать кнопку на ленте весьма сложно — обычно используют SendKeys для имитации нажатия клавиш. Но это довольно ненадежный метод. ИМХО наилучший из простых способов описан тут: https://www.quora.com/What-is-the-shortcut-key-for-format-painter-in-Excel-2010 , Method 2. https://www.google.ru/search?q=excel+format+painter+hotkey |
|
itsokay Пользователь Сообщений: 12 |
#12 08.01.2018 01:33:10
Вот же он по вашей ссылке
И не нужно никаких макросов. Прелестно! Казанский , Ігор Гончаренко , благодарю за помощь! |
||||
r_a_s Пользователь Сообщений: 9 |
Добрый День. Уважаемые. |
Ігор Гончаренко Пользователь Сообщений: 13746 |
#14 02.03.2023 15:06:04
Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
||
Выборочное форматирование листов по образцу |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Che_69 0 / 0 / 0 Регистрация: 26.12.2013 Сообщений: 32 |
||||
1 |
||||
Макрос «Формат по образцу»15.01.2014, 18:12. Показов 9462. Ответов 7 Метки нет (Все метки)
Подскажите пожалуйста, как подправить макрос, чтобы он копировал форматирование строки и применял его ко всем нижерасполагающимся строкам, имеющих данные. При записи макроса получился такой код :
Но он не работает как надо… После исполнения макроса лишь выделяются все нижерасполагающиеся строки, а форматирование не применяется к ним!
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
15.01.2014, 18:12 |
Ответы с готовыми решениями: При открытие файла csv макросом меняет формат столбца с «общий» на «числовой» Макрос для Excel. Формат строки по образцу при условии Задача: поменять формат всех ячеек с датой «dd.mm.yyyy hh:mm:ss» на «dd.mm.yy» Есть "умная" таблица с данными, в т.ч., датами, но даты не в… Как сделать так, чтобы макрос удалял данные из строки, начиная со столбца «p» и заканчивая столбцом «y»? 7 |
Surrogate Ушел с CyberForum совсем! 873 / 182 / 25 Регистрация: 04.05.2011 Сообщений: 1,020 Записей в блоге: 110 |
||||
15.01.2014, 18:32 |
2 |
|||
программное заполнение форматов (FillFormat)
2 |
1 / 1 / 0 Регистрация: 03.12.2014 Сообщений: 329 |
|
03.12.2022, 22:54 |
3 |
приветствую! скажите пожалуйста как заполнять форматы находясь на другой странице, насколько я поняла операция рабочая лишь на активной странице
0 |
Часто онлайн 792 / 530 / 238 Регистрация: 09.01.2017 Сообщений: 1,820 |
|
03.12.2022, 22:58 |
4 |
Оксана33, Я так делал, это работает.
0 |
1 / 1 / 0 Регистрация: 03.12.2014 Сообщений: 329 |
|
04.12.2022, 12:59 |
5 |
КостяФедореев, фишка в том чтобы без перехода, находясь на другой странице
0 |
344 / 206 / 78 Регистрация: 16.07.2020 Сообщений: 591 |
|
04.12.2022, 13:22 |
6 |
Оксана33, Не нужно так грубо нарушать правила форума.
насколько я поняла операция рабочая лишь на активной странице Это неверно, с помощью VBA можно работать с любыми страницами не делая их активными.
1 |
Dinoxromniy 1237 / 673 / 240 Регистрация: 22.12.2015 Сообщений: 2,094 |
||||
05.12.2022, 09:56 |
7 |
|||
как заполнять форматы находясь на другой странице, насколько я поняла операция рабочая лишь на активной странице Строго говоря, это работает не так. По нажатию кнопки происходит копирование (выделенные ячейки кстати и отображаются как положено при копировании) и специальная вставка с параметром «только формат». Вставить скопированное вы можете в любой лист документа. Например кусок кода ниже копирует оформление с любого листа в лист3 ячейку А1:
1 |
1 / 1 / 0 Регистрация: 03.12.2014 Сообщений: 329 |
|
08.12.2022, 15:25 |
8 |
AlexOld, я поняла, извините, думала это та же тема, чуть расширив ее Добавлено через 13 минут
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
08.12.2022, 15:25 |
Помогаю со студенческими работами здесь Нужен макрос, который «Разрешает редактирование» и «Включить содержимое» Необходимо найти способ, через макрос Разрешать редактирование и Включать… Макрос, который бы в столбце в пустые строки вставлял формулы =»»&&»» предыдущего значения Отметить полужирным шрифтом в исходном тексте слова имеющие приставки «пре», «при», «на», «не» Цифровой формат для TextBox TextBox1.NumberFormat = «0.0» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 8 |
На чтение 3 мин. Просмотров 15.1k. Опубликовано 30.07.2016
Есть в Excel отличная функция «Формат по образцу», которая позволяет копировать все последующие ячейки по формату выделенной ячейки. Наверно, многие ей пользовались. И наверно, как и я, пользовались следующим образом: выделил ячейку, нажал формат по образцу, выделил ячейку, опять нажал формат по образцу, выделил ячейку и так далее. Мне показалось, что проблема этой функции в том, что ее нельзя применить сразу на несколько ячеек. И поэтому я написал макрос, который это делает. Вся печаль состоит в том, что этот макрос оказался не нужен, так как в Excel такой функционал есть .
Урок, который надо усвоить на будущее, заключается в том, что не надо изобретать очередной велосипед, а стоит лишь к существующему прочитать справку . Достаточно было просто навести на соответствующую кнопку мышкой и во всплывающем сообщении дочитать до конца
Нужно просто дважды нажать на кнопку, и можно скопировать формат на несколько ячеек подряд.
Мой макрос работает по другой идеологии. Нужно сначала выделить ячейки (можно раздельные выделения через ctrl)
Запускаем макрос, он спросит ячейку или диапазон ячеек, формат которых нужно скопировать
После работы видим, что выделенные ячейки приняли нужный формат
В общем, ничего сложного. Можно сказать даже, что макрос в одну строчку через метод PasteSpecial. НО кто пишет макросы в excel, те знают, что после работы макроса отсутствует возможность откатить результат. Если при любом действии Excel вы можете нажать стрелочку назад или ctrl+Z, то после макроса все попытки будут тщетны. А при использовании копирования формата обязательно какие-то ячейки случайно зацепишь или не в тот формат переведешь, в общем, отмену действий надо обязательно сделать.
Прочитав статью Как отменить действия макроса, стало понятно, что надо все делать самому в части восстановления данных. Я пошел по первому пути (сохранении свойств ячейки), все таки делать копию листа это круто, но следить в файле копиями листов без 100% возможности потом за собой убрать как-то нехорошо.
Мудрить особо не стал, и просто сохранил свойства ячеек (рамки, шрифт, параметры текста в ячейке). После работы макроса можно откатить все назад
и результат не заставит себя ждать
Есть, конечно, проблемка, описанная в оригинальной статье. Если выделяется, допустим, целая строка или колонка, то сохранение свойств приводит к притормаживанию, а отмена действий посылает Excel в хороший нокдаун. Поэтому в макросе для выделенных ячеек, количество которых более 100, отключается отмена действий. То есть макрос работает, но потом результат не вернешь. Хорошая новость: лучше строки и колонки копировать через стандартную команду «Формат по образцу», так как потом доступна отмена действий и Excel все это делает за секунды.
Единственный косяк в работе стандартной функции копирования формата: при объединенный ячейках в особых случаях excel пишет такое сообщение
То есть, когда вы пытаетесь скопировать формат в строку с объединенными ячейками, вам нужно обязательно выделить полностью всю ячейку, иногда сразу это невозможно или трудно сделать. Но вот мой макрос спокойно применяет формат (насильно), убирая при этом объединенные ячейки
Файл Excel c макросом ExampleCopyFont.xlsm
Отдельно только макрос macros_copyFormat.txt
Формулировка задачи:
Подскажите пожалуйста, как подправить макрос, чтобы он копировал форматирование строки и применял его ко всем нижерасполагающимся строкам, имеющих данные. При записи макроса получился такой код :
Но он не работает как надо… После исполнения макроса лишь выделяются все нижерасполагающиеся строки, а форматирование не применяется к ним!
Код к задаче: «Макрос «Формат по образцу»»
textual
r = "11:" & ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1 Range("11:11").Select Selection.AutoFill Destination:=Range(r), Type:=xlFillFormats
Полезно ли:
15 голосов , оценка 3.667 из 5