Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/VBA задача - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » VBA задача (Макросы/Sub)
VBA задача
7TYK Дата: Четверг, 28.11.2019, 13:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Условие:
Пусть на рабочем листе Excel начиная с ячейки А1 расположена таблица с результатами экзаменов. Напишем макрос в Excel, который создаст новый документ Word, поместит в него заголовок "Ведомость" и таблицу, скопированную из Excel.
Чтобы создать такой макрос, перейдите в редактор Visual Basic (в Excel), откройте существующий или создайте новый программный модуль, в котором будет находиться макрос. Поместите в этот модуль тест следующей процедуры:
Public Sub PrintToWord()
Dim wrd As Word.Application
Set wrd = CreateObjectfWord.Application")
With wrd
.Visible = True
.Documents. Add
End With
With wrd.Selection
.ParagraphFormat.Alignment = wdAlignParagraphCenter
Font.Bold = wdToggle
.Font.Size = 16
.TypeText Text:= "Ведомость"
.TypeParagraph
End With
Range("A1").CurrentRegion.Copy
With wrd.Selection
.TypeParagraph
.Paste
.Tables(1 ).AutoFormat Format:=wdTableFormatGrid3
.Tables(1).Select
.Font.Size = 12
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.ParagraphFormat.FirstLinelndent = _
CentimetersToPoints(0.44)
.Columns.Width = lnchesToPoints(1.5)
.Rows(1).Select
.Font.Bold = True
End With
Set wrd = Nothing
End Sub
Особенностью этого макроса является то, что мы в Excel используем объекты другого приложения (Word). Чтобы это стало возможным, выполните команду Tools/Refercnces, в открывшемся окне найдите строку Microsoft Word: 14.0 Object Library (вместо 14.0 на вашем компьютере может быть другая версия), поставьте рядом с ней галочку (щелкните мышью) и нажмите кнопку ОК.
Все обращения к объектам Word должны начинаться с главного объекта Word.Application. В нашем случае его опускать нельзя, так как по умолчанию будет использоваться объект Excel. Application с другими свойствами и методами. При работе с объектами Excel объект Excel.Application можно не указывать, так как макрос создан в Excel. Объект Word.Application в макросе создает функция CreateObject. Она запускает новый экземпляр приложения Word и возвращает ссылку на созданный объект, которая сохраняется в переменной wrd. Именно эта переменная используется в программе для доступа к объектам Word.
Информация передается из рабочей книги в документ Word, как обычно, через буфер обмена. В макросе для этой цели используются методы Сору и Paste соответствующих объектов.
Методы TypeText и TypeParagraph объекта Selection вставляют текст и пустой абзац в выделенный фрагмент документа.
Довольно много инструкций макроса связаны с форматированием. Если вы хотите узнать, какому свойству какое значение нужно присвоить, чтобы было выполнено необходимое форматирование, то запишите макрос, выполняющий необходимые действия, с помощью команды Запись макроса и проанализируйте его текст.
Чтобы выполнить макрос, перейдите на лист с данными и выполните команду Разработчик/Макросы. Найдите в списке имя макроса PrintToWord и нажмите Выполнить. Если в этом окне выбрать Параметры, то макросу можно назначить сочетание клавиш, которое будет использоваться для вызова макроса.

Что сделала я:
Создала таблицу, открыла VBA, создала модуль в который вставила код из условия. Далее выполнила команду Tools/Refercnces. пробую запустить макрос в exel выдает ошибку.Что делаю не так?
 
Ответить
СообщениеУсловие:
Пусть на рабочем листе Excel начиная с ячейки А1 расположена таблица с результатами экзаменов. Напишем макрос в Excel, который создаст новый документ Word, поместит в него заголовок "Ведомость" и таблицу, скопированную из Excel.
Чтобы создать такой макрос, перейдите в редактор Visual Basic (в Excel), откройте существующий или создайте новый программный модуль, в котором будет находиться макрос. Поместите в этот модуль тест следующей процедуры:
Public Sub PrintToWord()
Dim wrd As Word.Application
Set wrd = CreateObjectfWord.Application")
With wrd
.Visible = True
.Documents. Add
End With
With wrd.Selection
.ParagraphFormat.Alignment = wdAlignParagraphCenter
Font.Bold = wdToggle
.Font.Size = 16
.TypeText Text:= "Ведомость"
.TypeParagraph
End With
Range("A1").CurrentRegion.Copy
With wrd.Selection
.TypeParagraph
.Paste
.Tables(1 ).AutoFormat Format:=wdTableFormatGrid3
.Tables(1).Select
.Font.Size = 12
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.ParagraphFormat.FirstLinelndent = _
CentimetersToPoints(0.44)
.Columns.Width = lnchesToPoints(1.5)
.Rows(1).Select
.Font.Bold = True
End With
Set wrd = Nothing
End Sub
Особенностью этого макроса является то, что мы в Excel используем объекты другого приложения (Word). Чтобы это стало возможным, выполните команду Tools/Refercnces, в открывшемся окне найдите строку Microsoft Word: 14.0 Object Library (вместо 14.0 на вашем компьютере может быть другая версия), поставьте рядом с ней галочку (щелкните мышью) и нажмите кнопку ОК.
Все обращения к объектам Word должны начинаться с главного объекта Word.Application. В нашем случае его опускать нельзя, так как по умолчанию будет использоваться объект Excel. Application с другими свойствами и методами. При работе с объектами Excel объект Excel.Application можно не указывать, так как макрос создан в Excel. Объект Word.Application в макросе создает функция CreateObject. Она запускает новый экземпляр приложения Word и возвращает ссылку на созданный объект, которая сохраняется в переменной wrd. Именно эта переменная используется в программе для доступа к объектам Word.
Информация передается из рабочей книги в документ Word, как обычно, через буфер обмена. В макросе для этой цели используются методы Сору и Paste соответствующих объектов.
Методы TypeText и TypeParagraph объекта Selection вставляют текст и пустой абзац в выделенный фрагмент документа.
Довольно много инструкций макроса связаны с форматированием. Если вы хотите узнать, какому свойству какое значение нужно присвоить, чтобы было выполнено необходимое форматирование, то запишите макрос, выполняющий необходимые действия, с помощью команды Запись макроса и проанализируйте его текст.
Чтобы выполнить макрос, перейдите на лист с данными и выполните команду Разработчик/Макросы. Найдите в списке имя макроса PrintToWord и нажмите Выполнить. Если в этом окне выбрать Параметры, то макросу можно назначить сочетание клавиш, которое будет использоваться для вызова макроса.

Что сделала я:
Создала таблицу, открыла VBA, создала модуль в который вставила код из условия. Далее выполнила команду Tools/Refercnces. пробую запустить макрос в exel выдает ошибку.Что делаю не так?

Автор - 7TYK
Дата добавления - 28.11.2019 в 13:55
Asretyq Дата: Четверг, 28.11.2019, 14:06 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
вот это врыв :D :D :D
правила не писаны для всех :D
 
Ответить
Сообщениевот это врыв :D :D :D
правила не писаны для всех :D

Автор - Asretyq
Дата добавления - 28.11.2019 в 14:06
Pelena Дата: Четверг, 28.11.2019, 14:07 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 14888
Репутация: 3254 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
7TYK, прочитайте Правила форума, придумайте теме более конкретное название, отражающее суть задачи, оформите код тегами с помощью кнопки # в режиме правки поста и приложите файл с Вашей таблицей


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
Сообщение7TYK, прочитайте Правила форума, придумайте теме более конкретное название, отражающее суть задачи, оформите код тегами с помощью кнопки # в режиме правки поста и приложите файл с Вашей таблицей

Автор - Pelena
Дата добавления - 28.11.2019 в 14:07
RAN Дата: Четверг, 28.11.2019, 19:26 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5204
Репутация: 1046 ±
Замечаний: 0% ±

2010
Чтобы создать такой макрос, перейдите в редактор Visual Basic (в Excel), откройте существующий или создайте новый программный модуль

Кто в очереди последний? За кем буду? Не опоздаю? :'(


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Чтобы создать такой макрос, перейдите в редактор Visual Basic (в Excel), откройте существующий или создайте новый программный модуль

Кто в очереди последний? За кем буду? Не опоздаю? :'(

Автор - RAN
Дата добавления - 28.11.2019 в 19:26
doober Дата: Четверг, 28.11.2019, 20:23 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 590
Репутация: 247 ±
Замечаний: 0% ±

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


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

Автор - doober
Дата добавления - 28.11.2019 в 20:23
bmv98rus Дата: Четверг, 28.11.2019, 20:27 | Сообщение № 6
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2802
Репутация: 484 ±
Замечаний: 0% ±

Excel 2013/2016
Не опоздаю?
смотря ка бежать
https://www.planetaexcel.ru/forum....1016919
:-)

7TYK, в тексте опечатка, но более конкретно , только после исправления кучи замечаний.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Не опоздаю?
смотря ка бежать
https://www.planetaexcel.ru/forum....1016919
:-)

7TYK, в тексте опечатка, но более конкретно , только после исправления кучи замечаний.

Автор - bmv98rus
Дата добавления - 28.11.2019 в 20:27
RAN Дата: Четверг, 28.11.2019, 22:18 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 5204
Репутация: 1046 ±
Замечаний: 0% ±

2010
У лукоморья дуб зеленый;
Златая цепь на дубе том:
И днем и ночью кот ученый
Всё ходит по цепи кругом;
Идет направо — собака злая,
Налево — медведь обкуренный.


Куда киске податься? :o

Там чудеса: там леший бродит,
Русалка на ветвях сидит;


Пойду к ним. yes


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Четверг, 28.11.2019, 22:25
 
Ответить
СообщениеУ лукоморья дуб зеленый;
Златая цепь на дубе том:
И днем и ночью кот ученый
Всё ходит по цепи кругом;
Идет направо — собака злая,
Налево — медведь обкуренный.


Куда киске податься? :o

Там чудеса: там леший бродит,
Русалка на ветвях сидит;


Пойду к ним. yes

Автор - RAN
Дата добавления - 28.11.2019 в 22:18
bmv98rus Дата: Четверг, 28.11.2019, 22:46 | Сообщение № 8
Группа: Проверенные
Ранг: Участник клуба
Сообщений: 2802
Репутация: 484 ±
Замечаний: 0% ±

Excel 2013/2016
[offtop]Там чудеса: там леший бородит,
Русалка на ветвях сидит;[/offtop]


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение[offtop]Там чудеса: там леший бородит,
Русалка на ветвях сидит;[/offtop]

Автор - bmv98rus
Дата добавления - 28.11.2019 в 22:46
китин Дата: Пятница, 29.11.2019, 07:05 | Сообщение № 9
Группа: Модераторы
Ранг: Экселист
Сообщений: 5981
Репутация: 928 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
во нафлудили то. может хватит ?


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениево нафлудили то. может хватит ?

Автор - китин
Дата добавления - 29.11.2019 в 07:05
китин Дата: Пятница, 29.11.2019, 07:05 | Сообщение № 10
Группа: Модераторы
Ранг: Экселист
Сообщений: 5981
Репутация: 928 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
7TYK, - Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)
Помогающим просьба воздержаться от ответов в этой теме до исправления замечания


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщение7TYK, - Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)
Помогающим просьба воздержаться от ответов в этой теме до исправления замечания

Автор - китин
Дата добавления - 29.11.2019 в 07:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » VBA задача (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!