Vba word формат по образцу

Che_69

0 / 0 / 0

Регистрация: 26.12.2013

Сообщений: 32

1

Макрос «Формат по образцу»

15.01.2014, 18:12. Показов 9426. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

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

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Option Explicit
 
Sub Ìàêðîñ5()
'
' Ìàêðîñ5 Ìàêðîñ
'
 
'
    ActiveWindow.Panes(1).Activate
    Rows("11:11").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range(Selection, Selection.End(xlDown)).Select
End Sub

Но он не работает как надо… После исполнения макроса лишь выделяются все нижерасполагающиеся строки, а форматирование не применяется к ним!



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

15.01.2014, 18:12

Ответы с готовыми решениями:

При открытие файла csv макросом меняет формат столбца с «общий» на «числовой»
Здравствуйте! Подскажите, пожалуйста.
Нужно макросом открыть файл csv. При открытии вручную все…

Макрос для Excel. Формат строки по образцу при условии
Добрый день!
Помогите пожалуйста написать макрос.
Нужно. Если в ячейке столбца "C" содержится…

Задача: поменять формат всех ячеек с датой «dd.mm.yyyy hh:mm:ss» на «dd.mm.yy»
Добрый день, уважаемые форумчане!

Есть "умная" таблица с данными, в т.ч., датами, но даты не в…

Как сделать так, чтобы макрос удалял данные из строки, начиная со столбца «p» и заканчивая столбцом «y»?
Здравствуйте, как сделать так, чтобы макрос удалял данные из строки, начиная со столбца "p" и,…

7

Surrogate

Ушел с CyberForum совсем!

873 / 182 / 25

Регистрация: 04.05.2011

Сообщений: 1,020

Записей в блоге: 110

15.01.2014, 18:32

2

программное заполнение форматов (FillFormat)

Visual Basic
1
2
3
r = "11:" & ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1
    Range("11:11").Select
    Selection.AutoFill Destination:=Range(r), Type:=xlFillFormats



2



1 / 1 / 0

Регистрация: 03.12.2014

Сообщений: 329

03.12.2022, 22:54

3

приветствую!

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



0



Часто онлайн

790 / 529 / 237

Регистрация: 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

Сообщений: 589

04.12.2022, 13:22

6

Оксана33, Не нужно так грубо нарушать правила форума.
Вы залезли в чужую тему со своим вопросом, который к ней не имеет никакого отношения. Свою создайте.
Если хотите быстро решить вашу проблему приложите небольшой файл с пояснениями.

Цитата
Сообщение от Оксана33
Посмотреть сообщение

насколько я поняла операция рабочая лишь на активной странице

Это неверно, с помощью VBA можно работать с любыми страницами не делая их активными.



1



Dinoxromniy

1233 / 671 / 238

Регистрация: 22.12.2015

Сообщений: 2,092

05.12.2022, 09:56

7

Цитата
Сообщение от Оксана33
Посмотреть сообщение

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

Строго говоря, это работает не так. По нажатию кнопки происходит копирование (выделенные ячейки кстати и отображаются как положено при копировании) и специальная вставка с параметром «только формат». Вставить скопированное вы можете в любой лист документа. Например кусок кода ниже копирует оформление с любого листа в лист3 ячейку А1:

Visual Basic
1
2
3
Selection.Copy
        ThisWorkbook.Sheets.Item("Лист3").Cells(1, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False



1



1 / 1 / 0

Регистрация: 03.12.2014

Сообщений: 329

08.12.2022, 15:25

8

AlexOld, я поняла, извините, думала это та же тема, чуть расширив ее

Добавлено через 13 минут
Dinoxromniy, спасибо за ответ! почему то не додумалась сама взять макрос из макрорекодера и переписать, подставив в Selection адреса, что уже делала неоднократно



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

08.12.2022, 15:25

Помогаю со студенческими работами здесь

Нужен макрос, который «Разрешает редактирование» и «Включить содержимое»
Добрый день, коллеги!

Необходимо найти способ, через макрос Разрешать редактирование и Включать…

Макрос, который бы в столбце в пустые строки вставлял формулы =»»&&»» предыдущего значения
Помогите пожалуйста, нужен макрос который бы в столбце в пустые строки вставлял формулы =""&&""…

Отметить полужирным шрифтом в исходном тексте слова имеющие приставки «пре», «при», «на», «не»
Отметить полужирным шрифтом в исходном тексте слова имеющие приставки "пре",
"при", "на", "не"….

Цифровой формат для TextBox TextBox1.NumberFormat = «0.0»
Kakoj nujen kod dlja togo chtoby pri vvode dannyx Format TextBox-a byl takim 10.000 ili 1.000.000…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

8

 

itsokay

Пользователь

Сообщений: 12
Регистрация: 05.01.2018

#1

05.01.2018 22:54:41

Господа, доброго времени суток.

Помогите, пожалуйста, вот в таком вопросе :
нужно сделать условно говоря хоткей на функцию формат по образцу, для этого пишу макрос и назначаю на него хоткей.
автозапись предложила копировать формат с помощью функции Selection.Copy и вставлять его функцией

Код
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

Теперь вопрос по части как сделать так, что бы после нажатия хоткея отрабатывалось копирование, а потом после выбора нужной ячейки мышью  скопированный формат применялся к выбранной ячейке ?

Спасибо за ответ.

Изменено: itsokay05.01.2018 23:09:35

 

если Вам интересно изучать программирование — Вы можете экспериментировать с кодом до того времени пока все не получится так, ка Вы того хотите
если Вам нужен результат (скопировать формат какой-то ячейки на группу других ячеек), то для этой цели в Excel есть инструмент «формат по образцу», находится эта кнопка в меню Главная, группа Буфер обмена
на мой взгляд, ни в том ни в другом случае помощь форума Вам не нужна

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

itsokay

Пользователь

Сообщений: 12
Регистрация: 05.01.2018

#3

05.01.2018 23:29:42

Цитата
Ігор Гончаренко написал:
если Вам нужен результат (скопировать формат какой-то ячейки на группу других ячеек), то для этой цели в Excel есть инструмент «формат по образцу»,

инструмент и вправду есть, тут вопрос в том что хочется на него сделать хоткей так как часто им пользуюсь.  

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#4

05.01.2018 23:40:40

не знаю что Вы на этом выиграете
используйте это

Код
  If Application.CutCopyMode Then
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
  Else
    Selection.Copy
  End If

вместо Вашего хоткей макроса

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

itsokay

Пользователь

Сообщений: 12
Регистрация: 05.01.2018

Чудно!

Единственный момент это то что приходится дважды нажимать на хоткей (макрос). Задумка была изначально что бы хоткей нажимался один раз (происходит копирование) и потом мышкой выбирается ячейка для вставки формата после чего макрос сам вставляет формат по select мышкой. Как-то так.  

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#6

06.01.2018 01:13:59

а теперь это:

Код
  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

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

itsokay

Пользователь

Сообщений: 12
Регистрация: 05.01.2018

мы наверное немного не понимаем друг друга.
задумка такая: в ячейке А1 нужный формат. К ячейке В1 этот формат нужно применить. Последовательность действий :
1)  ручками выбираем ячейку А1
2) нажимаем хоткей (отрабатывает первая часть макроса по копированию формата с текущей ячейки)
3) ручками выбираем ячейку В1 (отрабатывает вторая часть макроса по вставке формата в указанную ячейку).

 

согласен взаимопонимание стремится к нулю (на этапе, когда люди разговаривают на разных языках — это нормально)
на что заточен предложенный выше макрос:
0. вставляете текст этого макроса вместо тела вашего хоткей макроса
1. отмечаете ЛЮБУЮ ячейку (не обязательно А1, ЛЮБУЮ!)
2. жмете хоткей
3. макрос спрашивает куда скопировать форматот омеченной в п.1 ячейки?
4. отмечаете мишью требуемый диапазон, жмете Ок
5. готово. форматы отмеченной в п.1 ячейки распространены на указанные в п. 4. ячейки
что не так?

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

itsokay

Пользователь

Сообщений: 12
Регистрация: 05.01.2018

#9

07.01.2018 22:32:25

Цитата
Ігор Гончаренко написал:
что не так?

задача макроса свести процесс форматирования к нажатию хоткея + 1 клик мышки. Это должно занимать меньше секунды. В идеале вот так :
0. вставляете текст этого макроса вместо тела вашего хоткей макроса
1. отмечаете ЛЮБУЮ ячейку (не обязательно А1, ЛЮБУЮ!)
2. жмете хоткей

4. отмечаете мишью требуемый диапазон
5. готово. форматы отмеченной в п.1 ячейки распространены на указанные в п. 4. ячейки  

 

Юрий М

Модератор

Сообщений: 60575
Регистрация: 14.09.2012

Контакты см. в профиле

 

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
Регистрация: 05.01.2018

#12

08.01.2018 01:33:10

Цитата
Казанский написал:
хоткей на вызов команды «Формат по образцу»

Вот же он по вашей ссылке

Цитата
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)

И не нужно никаких макросов. Прелестно!

Казанский

,

Ігор Гончаренко

, благодарю за помощь!

 

r_a_s

Пользователь

Сообщений: 9
Регистрация: 30.08.2018

Добрый День. Уважаемые.
Поделитесь пожалуйста макросом, если не сложно.
Макрос должен копировать формат по образцу из определенного листа. в другой лист. Строго все ячейки должны копироваться в те же ячейки только в другой лист.

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#14

02.03.2023 15:06:04

Код
Selection.Copy WorkSheets("ИмяДругогоЛиста").Range(Selection.Cells(1).Address(0,0))

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

Формулировка задачи:

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

Но он не работает как надо… После исполнения макроса лишь выделяются все нижерасполагающиеся строки, а форматирование не применяется к ним!

Код к задаче: «Макрос «Формат по образцу»»

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

Поиск и замена форматирования

Поиск и замена форматирования

Для поиска текста с определенным форматированием используйте свойства объекта Find, касающиеся форматирования. Они идентичны свойствам, используемым при работе с форматированием диапазона или выделенной области, как я уже отмечал в разделе «Форматирование текста», раньше в настоящей главе. Вы можете использовать те же свойства объекта Replacement, если хотите указать форматирование для замещающего текста.

Для поиска любого текста с определенным форматированием задайте соответствующие свойства объекта Find, а также задайте свойство Text равным пустой строке, используя пару кавычек. Для изменения форматирования найденного текста без влияния на сам текст, используйте пустую строку в качестве значения свойства Text объекта Replacement.

Приведенный ниже код проводит поиск абзацев, которым в данный момент назначен стиль Drab, после чего назначает им стиль Frilly:

With Selection.Find

.ClearFormatting

.Style = «Drab»

.Text = «»

With .Replacement

ClearFormatting

.Style •= «Drilly»

.Text = «»

End With

.Execute Replace := wdReplaceAll

.ClearFormatting

.Replacement.ClearFormatting

End With

Включение двух инструкций ля «очистки формата» в вашу процедуру после метода Execute — очень неплохая идея. В противном случае, когда пользователь в следующий раз прибегнет к диалоговому окну Найти и заменить, ему придется сбрасывать все параметры форматирования вручную.

Читайте также

Поиск и замена данных

Поиск и замена данных
В программе HtmlPad реализована возможность быстрого поиска данных. Этот механизм полезно использовать при работе с большими программными кодами или с большими объемами данных, поскольку поиск требуемой информации вручную (например, путем просмотра

Быстрый поиск и замена данных в программе NeonHtml

Быстрый поиск и замена данных в программе NeonHtml
В программе NeonHtml реализована возможность быстрого поиска данных. Это особенно актуально при работе с большими программными кодами или с большими объемами данных, поскольку поиск требуемой информации вручную (например,

Поиск и замена данных

Поиск и замена данных
В программе Extra Hide Studio имеется удобный механизм для быстрого поиска и замены данных. Эта возможность особенно актуальна при работе с большими исходными кодами, поскольку поиск данных путем просмотра всего кода может занять слишком много времени, и к

3.1. Поиск и замена фрагментов

3.1. Поиск и замена фрагментов
Текстовый редактор успешно справляется с поиском и заменой текста в отдельном файле. Однако, если это же нужно сделать сразу в нескольких файлах, лучше воспользоваться специальными программами, с помощью которых можно заменить фрагменты

Поиск и замена текста

Поиск и замена текста
В текстовом редакторе Adobe InDesign можно воспользоваться полезнейшей функцией поиска и замены фрагментов текста. Причем, раз мы имеем дело с программой верстки, найденные фрагменты можно не только заменить другими, но и оформить каким-то образом –

Поиск и замена текста с помощью VBA в Word

Поиск и замена текста с помощью VBA в Word
Хотя это звучит и несколько необычно, но Find — это объект Word VBA. Объекты Find принадлежат диапазонам и выделенным областям. Для обнаружения или форматирования текста с помощью объекта Find вам потребуется выполнить следующие действия.1.

Автоматический поиск и замена данных

Автоматический поиск и замена данных
В процессе работы иногда возникает необходимость быстро найти те или иные данные (слово, текстовый фрагмент и т. д.) либо заменить одни данные на другие. Для решения такой задачи в Publisher 2007 реализован механизм автоматического поиска и

Поиск и замена

Поиск и замена
В новой версии Excel был полностью изменен пользовательский интерфейс и расширены функциональные возможности средства Найти и заменить. Теперь можно с помощью одной операции производить поиск и замену по всем листам книги, повторно выполнять запросы поиска

Поиск и замена символов

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

5.7. Поиск и замена

5.7. Поиск и замена
В документе можно производить автоматический поиск текста и замену его другим.Поиск и замена ведется по введенному образцу. Если в качестве образца указано слово «ход», то компьютер найдет и слово «пароход», если предварительно не поставить условие, что

13.3.4. Поиск и замена текста

13.3.4. Поиск и замена текста
Как вы уже догадались, окно Найти и заменить используется не только для перехода на нужную страницу. Вкладка Найти используется для поиска текста. Для быстрого доступа к этой вкладке нажмите Ctrl+F или выберите команду меню Правка, Найти. Нажмите

Поиск и замена

Поиск и замена
Для поиска в тексте документа нужного слова или сочетания символов служит окно поиска и замены (рис. 9.19), которое открывается нажатием Ctrl+F. Если надо, чтобы оно сразу открылось как окно замены, используйте сочетание Ctrl+H.

Рис. 9.19. Окно поиска и замены.Для

Поиск и замена фрагментов фильма

Поиск и замена фрагментов фильма
Очень часто бывает нужно найти в изображении или фильме Flash какой-либо текст и, возможно, заменить его на другой. Специально для этого Flash, как и многие другие программы, работающие с документами, предлагает богатые возможности по поиску и

Поиск и замена текста

Поиск и замена текста
Поиск определенного слова или фразы в большом документе является довольно непростой задачей, но ее можно значительно упростить, если воспользоваться командой Главная ? Редактирование ? Найти. В появившемся окне (рис. 5.20) введите искомый текст и

Поиск и замена данных

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

Like this post? Please share to your friends:
  • Vba word удалить столбец таблицы
  • Vba word удалить символ
  • Vba word удалить разрыв раздела
  • Vba word удалить пробелы
  • Vba word удалить интервал после абзаца