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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир 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
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

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


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

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

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

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


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

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

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

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


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

Автор - doober
Дата добавления - 28.11.2019 в 20:23
bmv98rus Дата: Четверг, 28.11.2019, 20:27 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 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
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 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
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация: 766 ±
Замечаний: 0% ±

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


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

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

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


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

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

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


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

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

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