Страницы: 1
RSS
Макрос Формат по образцу
 
Господа, доброго времени суток.

Помогите, пожалуйста, вот в таком вопросе :
нужно сделать условно говоря хоткей на функцию формат по образцу, для этого пишу макрос и назначаю на него хоткей.
автозапись предложила копировать формат с помощью функции Selection.Copy и вставлять его функцией
Код
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
Теперь вопрос по части как сделать так, что бы после нажатия хоткея отрабатывалось копирование, а потом после выбора нужной ячейки мышью  скопированный формат применялся к выбранной ячейке ?

Спасибо за ответ.
Изменено: itsokay - 05.01.2018 23:09:35
 
если Вам интересно изучать программирование - Вы можете экспериментировать с кодом до того времени пока все не получится так, ка Вы того хотите
если Вам нужен результат (скопировать формат какой-то ячейки на группу других ячеек), то для этой цели в Excel есть инструмент "формат по образцу", находится эта кнопка в меню Главная, группа Буфер обмена
на мой взгляд, ни в том ни в другом случае помощь форума Вам не нужна
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
если Вам нужен результат (скопировать формат какой-то ячейки на группу других ячеек), то для этой цели в Excel есть инструмент "формат по образцу",
инструмент и вправду есть, тут вопрос в том что хочется на него сделать хоткей так как часто им пользуюсь.  
 
не знаю что Вы на этом выиграете
используйте это
Код
  If Application.CutCopyMode Then
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
  Else
    Selection.Copy
  End If
вместо Вашего хоткей макроса
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Чудно!

Единственный момент это то что приходится дважды нажимать на хоткей (макрос). Задумка была изначально что бы хоткей нажимался один раз (происходит копирование) и потом мышкой выбирается ячейка для вставки формата после чего макрос сам вставляет формат по select мышкой. Как-то так.  
 
а теперь это:
Код
  Dim rgF As Range, rg As Range
  On Error Resume Next:  Set rgF = Selection
  Set rg = Application.InputBox("Отметьте диапазон", _
  "Куда положить формат из " & rgF.Address(False, False), Type:=8)
  If rg Is Nothing Then Application.CutCopyMode = False: Exit Sub
  rgF.Copy
  rg.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  Application.CutCopyMode = False
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
мы наверное немного не понимаем друг друга.
задумка такая: в ячейке А1 нужный формат. К ячейке В1 этот формат нужно применить. Последовательность действий :
1)  ручками выбираем ячейку А1
2) нажимаем хоткей (отрабатывает первая часть макроса по копированию формата с текущей ячейки)
3) ручками выбираем ячейку В1 (отрабатывает вторая часть макроса по вставке формата в указанную ячейку).
 
согласен взаимопонимание стремится к нулю (на этапе, когда люди разговаривают на разных языках - это нормально)
на что заточен предложенный выше макрос:
0. вставляете текст этого макроса вместо тела вашего хоткей макроса
1. отмечаете ЛЮБУЮ ячейку (не обязательно А1, ЛЮБУЮ!)
2. жмете хоткей
3. макрос спрашивает куда скопировать форматот омеченной в п.1 ячейки?
4. отмечаете мишью требуемый диапазон, жмете Ок
5. готово. форматы отмеченной в п.1 ячейки распространены на указанные в п. 4. ячейки
что не так?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
что не так?
задача макроса свести процесс форматирования к нажатию хоткея + 1 клик мышки. Это должно занимать меньше секунды. В идеале вот так :
0. вставляете текст этого макроса вместо тела вашего хоткей макроса
1. отмечаете ЛЮБУЮ ячейку (не обязательно А1, ЛЮБУЮ!)
2. жмете хоткей

4. отмечаете мишью требуемый диапазон
5. готово. форматы отмеченной в п.1 ячейки распространены на указанные в п. 4. ячейки  
 
Вы исключили п.3?
 
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
 
Цитата
Казанский написал:
хоткей на вызов команды "Формат по образцу"
Вот же он по вашей ссылке
Цитата
Add Format painter from Home tab to Quick Access Toolbar and you can assign a custom short cut by clicking one after the other i.e. Alt + User defined Numeric (Example: Alt + 5)
И не нужно никаких макросов. Прелестно!
Казанский, Ігор Гончаренко, благодарю за помощь!
 
Добрый День. Уважаемые.
Поделитесь пожалуйста макросом, если не сложно.
Макрос должен копировать формат по образцу из определенного листа. в другой лист. Строго все ячейки должны копироваться в те же ячейки только в другой лист.
 
Код
Selection.Copy WorkSheets("ИмяДругогоЛиста").Range(Selection.Cells(1).Address(0,0))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Читают тему
Наверх