Условие: Пусть на рабочем листе 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
7TYK, прочитайте Правила форума, придумайте теме более конкретное название, отражающее суть задачи, оформите код тегами с помощью кнопки # в режиме правки поста и приложите файл с Вашей таблицей
7TYK, прочитайте Правила форума, придумайте теме более конкретное название, отражающее суть задачи, оформите код тегами с помощью кнопки # в режиме правки поста и приложите файл с Вашей таблицейPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
У лукоморья дуб зеленый; Златая цепь на дубе том: И днем и ночью кот ученый Всё ходит по цепи кругом; Идет направо — собака злая, Налево — медведь обкуренный.
Куда киске податься? Там чудеса: там леший бродит, Русалка на ветвях сидит;
Пойду к ним.
У лукоморья дуб зеленый; Златая цепь на дубе том: И днем и ночью кот ученый Всё ходит по цепи кругом; Идет направо — собака злая, Налево — медведь обкуренный.
Куда киске податься? Там чудеса: там леший бродит, Русалка на ветвях сидит;
7TYK, - Прочитайте Правила форума - Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума - Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь) Помогающим просьба воздержаться от ответов в этой теме до исправления замечания
7TYK, - Прочитайте Правила форума - Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума - Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь) Помогающим просьба воздержаться от ответов в этой теме до исправления замечаниякитин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852