|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.02.2010, 14:42 | #1 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
Запуск макроса под word из excel
1. В excel имеется набор исходных данных и формулы расчета.
2. С помощью режима записи в word написан и отредактирован скрипт: формирование исходного текста с созданием вногоуровневого списка, установкой требуемыз абзацев, .... Цель: имея один файл excel, запускать один макрос их этого файла, а получать результат в виде сформированного документа word (документ word не должен содержать макросов, иначе зачем писать этот макрос, когда можно к excel прикрепить заготовку word с закладками?). Проблема в том, что excel не понимает написанного а в word-е скрипт. Есть ли решение? Спасибо. |
28.02.2010, 15:04 | #2 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Вы выкладываете файлы Word и excel, код записанного макроса - а мы переделываем этот макрос так, чтобы он мог работать из VBA Excel. Ну а проще использовать готовое универсальное решение: Цитата:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 28.03.2012 в 11:13. |
||
28.02.2010, 18:55 | #3 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Вы же тоже не понимали азбуку, пока вам не объяснили. Так же и Excel. Решение есть. И, кстати, неоднократно обсуждалось на форуме.
Лучше день потерять — потом за пять минут долететь!©
|
28.02.2010, 19:28 | #4 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
Уважаемый профессионал, скинте ссылку если есть, или хотя бы раздел где искать.
А то тут некоторые предлагают услуги за деньги за существующее решение (возможно не их). Их понять можно, но то, что я собираюсь делать - не коммерческий проект... |
28.02.2010, 20:35 | #6 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
EducatedFool, какие два файла? Планирую иметь один файл: Excel со стандартным скриптом под excel и скриптом, созданным в word через editor. Cкрипт, созданным в word через editor, работает локально отлично, но при переносе его в excel - excel выдает ошибки; например на такие строки, как: ".LeftIndent = CentimetersToPoints(0)" и перестает ругаться, но игнорирует строку после замены "=" на ".".
Простая вставка абзацев с вкладками не вызывает проблем, но хочеться выполнить word-макрос (написанный в word), который был бы интегрирован в excel со всеми вытекающими! Пример: 1. Стандартная обработка в excel 2. Открытие новой книги Word 3. Заполнение листа Word: (см. прикрепленный файл) 4. Вставка данных из Excel в Word (стандартным способом). Интересует только проблемный п. 3 Спасибо за любую помощь. |
28.02.2010, 20:38 | #7 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
Спасибо за ссылку. Но как я разобрался - в примере наличиствует явный перенос данных из excel в word. У меня - другая задача. Шерстю дальше форум с целью поиска ответа.
|
28.02.2010, 22:42 | #8 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Не подумай, что я издеваюсь, но скрипт под Excel ты где взял? Если сам написал, то должен хотя бы приблизительно представлять, что для запуска скрипта для Word нужно, как минимум, иметь объект Word. Вот тебе пример: Код:
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 28.02.2010 в 22:49. |
|
28.02.2010, 23:00 | #9 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 11
|
Буду разбираться дальше .
Но чтобы сэкономить время всех я писал следующее: "... 2. Открытие новой книги Word ... Интересует только проблемный п. 3" С п. 2 я разобрался Последний раз редактировалось siimao; 28.02.2010 в 23:21. Причина: добавлен файл с примером результата, который бы хотелось получить работой ОДНОГО Excel (Word как инструмент) |
01.03.2010, 01:49 | #10 |
Форумчанин
Регистрация: 17.07.2009
Сообщений: 519
|
Вообще говоря, в Word есть такая замечательная вещь как Шаблоны (Templates). Во многих случаях удобно создавать новый документ на основе шаблона. В шаблон можно поместить макрокод на VBA который будет автоматически выполняться, например, в момент создания нового документа на базе этого шаблона.
Можно так же выполнить макрос из шаблона в любой момент с помощью метода Application.Run (для Word). Когда создаются различные документы в зависимости от исходных данных в Excel, бывает удобно задавать шаблон динамически. Вот пример кода для Excel, открывающего документ test.doc в каталоге рабочей книги Excel, динамически подключающего шаблон MyTemplate.dot из этого же каталога и выполняющего макрос Word MySubFromTemplate изподключенного шаблона. Код:
Пример: Код:
Код:
В Word используйте функцию Split для разбора списковых параметров. Доступ к переменной из VBA кода Word осуществляется по имени Код:
Точки модификации шаблона удобно указывать не с помощью закладок (как это обычно делается), а используя поля типа ADDIN { ADDIN _НДС} Такой подход позволяет указывать в поле дополнительные параметры модификаторы для формирования вставляемого в формируемый документ текста. Например, указание на необходимость выведения суммы или даты прописью, или указание в каком падеже необходимо подставлять передаваемые из Excel ФИО. В частности, удобно именно здесь формировать стандартные строки типа "сумма с ндс". Кстати, модифицирующую информацию удобно вставлять не вместо значения поля, а после поля с помощью метода .InsertAfter. Это очень облегчает отладку шаблона. Важно помнить что поля в теле самого документа и в размещённых в нём шейпах составляют отдельные коллекции. Дополнительным бонусом подхода является возможность заполнения на основании одного пользовательского поля форматных таблиц ( по одному символу в ячейке). При этом из Excel передаётся, например, строка (переменная) ФИО, а в шаблоне указывается: {ADDIN ФИО.ИМЯ /T}, или {ADDIN ФИО.ФАМИЛИЯ /T}, или {ADDIN ФИО /W3 /ПР /T}. Здесь /T указывает на табличный способ заполнения, а /W3 - третье слово (отчество) от ФИО в родительном (/ПР) падеже. Можно чуть изменив технологию подставлять из EXCEL диаграммы и создавать сложные шейпы рисунки на основе передаваемых данных. Последний раз редактировалось Aent; 01.03.2010 в 03:10. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запуск макроса | serafim09 | Microsoft Office Excel | 9 | 03.09.2009 16:55 |
Копирование таблиц из Excel в Word с помощью макроса | Kostaen | Microsoft Office Word | 3 | 25.08.2009 05:00 |
Запуск макроса в Excel из программы на C# | AnnNet | Общие вопросы .NET | 1 | 05.06.2009 16:23 |
Запуск макроса с параметрами из другого макроса | Saladin | Microsoft Office Excel | 2 | 19.01.2009 09:43 |
Как создать новый файл Word из макроса Excel? | Dorvir | Microsoft Office Excel | 12 | 08.07.2008 16:50 |