Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2012, 15:19   #1
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию Импорт данных с Excel в Word - очередное...

Здравствуйте, знаю что тема неоднократно поднималась и обсуждалась, но все просмотренные темы результата не дали (согласен, может плохо смотрел). В общем нужна помощь.

Задача:
Во вложенном файле реализован договор купли продажи (пример). Мне необходимо импортировать данные в документ Word. Для этого я копирую определенный диапазон ячеек. Создаю объект Word (документ). Вставляю скопированный диапазон (таблицу) как Неформатированный текст (как в пункте MS Word - Правка/Специальная вставка). Копирую следующий необходимый диапазон ячеек и также вставляю.

После таких манипуляций между текстами образуется множество знаков абзаца. Чтобы это дело подправить делаю поиск с заменой с помощью подстановочных знаков найти ^0013{2;} (два и более подряд идущих абзаца) заменить на ^0013 (один абзац).

После того как текст отформатирован копирую и просто вставляю как таблицу уже другой диапазон (данные по товарам и реквизиты сторон). Чтобы найти куда вставлять данные таблицы заранее пишу в нужных местах документа ворд слова МЕТКА1 и МЕТКА2 (может это лишнее??)

Но, все что я пишу "делаю" означает на самом деле "хочется" но не получается...
Дополнительные данные написал в самом коде в комментариях.

Спасибо,
Вложения
Тип файла: zip Пример экспорта.zip (16.8 Кб, 35 просмотров)
Mint86 вне форума Ответить с цитированием
Старый 13.06.2012, 15:55   #2
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Mint86 Посмотреть сообщение
Здравствуйте, знаю что тема неоднократно поднималась и обсуждалась, но все просмотренные темы результата не дали (согласен, может плохо смотрел). В общем нужна помощь.

Задача:
Во вложенном файле реализован договор купли продажи (пример). Мне необходимо импортировать данные в документ Word. Для этого я копирую определенный диапазон ячеек. Создаю объект Word (документ). Вставляю скопированный диапазон (таблицу) как Неформатированный текст (как в пункте MS Word - Правка/Специальная вставка). Копирую следующий необходимый диапазон ячеек и также вставляю.

После таких манипуляций между текстами образуется множество знаков абзаца. Чтобы это дело подправить делаю поиск с заменой с помощью подстановочных знаков найти ^0013{2;} (два и более подряд идущих абзаца) заменить на ^0013 (один абзац).

После того как текст отформатирован копирую и просто вставляю как таблицу уже другой диапазон (данные по товарам и реквизиты сторон). Чтобы найти куда вставлять данные таблицы заранее пишу в нужных местах документа ворд слова МЕТКА1 и МЕТКА2 (может это лишнее??)

Но, все что я пишу "делаю" означает на самом деле "хочется" но не получается...
Дополнительные данные написал в самом коде в комментариях.

Спасибо,
посмотрите вот здесь:
http://excelvba.ru/code/CreateWordDocuments#attachments
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 14.06.2012, 07:25   #3
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

Спасибо, прочитал/посмотрел/попробовал, не получается отработать код вставки неформатированного текста и поиска с заменой...
Хочется чтобы код работал (если это возможно) без подключения references объекта Word
Mint86 вне форума Ответить с цитированием
Старый 14.06.2012, 10:04   #4
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Mint86 Посмотреть сообщение
Спасибо, прочитал/посмотрел/попробовал, не получается отработать код вставки неформатированного текста и поиска с заменой...
Хочется чтобы код работал (если это возможно) без подключения references объекта Word
здесь посмотрите:
http://mirvba.ru/makrosi-excel/ekspo...schiu-vba.html
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 14.06.2012, 11:54   #5
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

Посмотрел, и на этом форуме смотрелhttp://www.sql.ru/forum/actualthread...507609#5093421 и http://www.cyberforum.ru/vba/thread284988.html посмотрел, но код вставки неформатированного текста не работает...
Ладно буду другие пути искать.
Mint86 вне форума Ответить с цитированием
Старый 14.06.2012, 12:18   #6
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

В общем код
Код:
With objWord

         .Documents.Add
         .Visible = True
         .Parent.Selection.PasteAndFormat (wdFormatPlainText)
       
End With
и

Код:
With objWord
    .Selection.Find.ClearFormatting
    .Selection.Find.Replacement.ClearFormatting
        With objWord.Selection.Find
            .Text = "^0013{2;}"
            .Replacement.Text = "^0013"
            .Forward = True
            .Wrap = wdFindAsk
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
        End With
    .Selection.Find.Execute Replace:=wdReplaceAll
    
End With
Заработали только при включении references Word object librery что конечно же печально, так как если на компьютере не установлен данный reference код не будет работать...
Mint86 вне форума Ответить с цитированием
Старый 14.06.2012, 14:57   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Заработали только при включении references Word object librery что конечно же печально
Если вы замените вордовские константы типа wdReplaceAll, wdFormatPlainText и wdFindAsk их числовыми значениями - подключать библиотеку будет совсем не обязательно )
EducatedFool вне форума Ответить с цитированием
Старый 14.06.2012, 16:43   #8
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

EducatedFool, спасибо, отсюда http://www.programmersforum.ru/showthread.php?t=58507 узнал что числовое значение wdReplaceAll это 2, где можно узнать числовые значения остальных констант? Чет найти не можется...
Mint86 вне форума Ответить с цитированием
Старый 14.06.2012, 16:54   #9
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

Вот это правильно?
Mint86 вне форума Ответить с цитированием
Старый 14.06.2012, 17:12   #10
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Сообщение от Mint86 Посмотреть сообщение
где можно узнать числовые значения остальных констант? Чет найти не можется...
открываете word, нажимаете alt+f11, затем f2. Далее поиск )
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт данных из Word с постобработкой strannick Microsoft Office Excel 4 30.04.2012 19:04
Импорт данных из Word в Excel макросом vv66 Microsoft Office Excel 17 27.01.2012 14:49
SQL-запрос в excel, или импорт данных в word Sanek_81 Microsoft Office Excel 7 10.02.2011 14:40
импорт таблиц word в excel manowar_gub Microsoft Office Excel 6 13.12.2010 10:23