Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/398: Рейтинг темы: голосов - 398, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 3

Вставка текста из Excel в Word

05.10.2012, 18:42. Показов 86337. Ответов 64
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ув. форумчане. Помогите начинающему. У меня есть экселевский файл с реквизитами клиентов. могу ли я сделать, чтобы по нажатию какой-нибудь кнопки(или по запуску макроса) создавался договор по определенному контрагенту из шаблона word?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2012, 18:42
Ответы с готовыми решениями:

Вставка текста в Word
Возникла такая проблема: на форме имеется компонент ComboBox, я из него считываю текст и заношу его в Word. Мне нужно, чтобы при щелчке...

Вставка текста в Word
Подскажите пожалуйста, как в готовый документ Word вставлять в определенные места из VB-программы текст.

Вставка значений и в excel и в word
Приветствую... Вопрос следующий... У меня есть форма, на ней пользователь вводит свои значения, по нажатию на кнопку эти значения...

64
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
07.11.2012, 20:35
Студворк — интернет-сервис помощи студентам
evavdeev, у вас дело в том (сам только что узнал), что при вставке текста в закладку, закладка удаляется.

Есть 2 вида закладок:
  1. в виде вертикальной черты;
  2. в виде квадратных скобок.
Закладка в виде вертикальной черты получается, если при вставке закладки, нет выделения текста.
Закладка в виде двух квадратных скобок получается, если при вставке закладки выделелен текст.

При вставке данных в закладку в виде вертикальной черты - закладка не удаляется, а при вставке данных в закладку в виде квадратных скобок, закладка удаляется.

Т.е. вывод какой? Вам надо сделать одного вида все закладки в шаблоне. Если закладки будут в виде вертикальной черты, то в коде VBA надо добавить команды по удалению закладок. Если закладки будут в виде квадратных скобок, то команды в коде VBA по удалению закладок не нужны.
2
1 / 1 / 0
Регистрация: 06.11.2012
Сообщений: 6
08.11.2012, 09:08
Разобрался... вроде все перед глазами, а сам не заметил...

Visual Basic
1
2
3
    oDoc.Bookmarks(sBookmark_address).Delete
    oDoc.Bookmarks(sBookmark_idn).Delete
    oDoc.Bookmarks(sBookmark_sn).Delete
Все работает. Большое спасибо за помощь!

Добавлено через 4 минуты
Цитата Сообщение от Скрипт Посмотреть сообщение
Есть 2 вида закладок
Полезная информация, но уже воспользовался прежним способом. Просто первоначально использовал неправильный синтаксис.
0
159 / 0 / 1
Регистрация: 18.06.2013
Сообщений: 2
18.06.2013, 17:33
Здравствуйте! Решилась вот к Вам обратиться с мольбой о помощи. я лишь начинаю программировать. В данный момент занимаюсь разработкой информационной системы для оценки рейтинга на VBA в Excel. По началу проблем не было,но сейчас возникла проблема с записью результатов с excel в документ word. впервые с этим столкнулась. Наткнулась на этот форум. скачала - Задачи-VBA-57.zip, попыталась разобраться. вроде работает,а под свою прогу не могу подстроить( меня бы немного направить в нужное русло,а там сама все сделаю.

в папке ИС нужно открыть anketaа.xls. в редакторе VBA у меня много форм,не обращайте внимания,там остальное будет. пока используем первые три формы,которые во время запуска макроса переходят одна в другую. третья переходит в 29-ю, в ней нажимаем на кнопку Анализировать и попадаем на 30-ю форму, после нажатия на нее прога считает то,что мне нужно. до этого момента все нормально. дальше нужно вставить в документ Шаблон.doc в нужные места соответствующие значения,либо по этому шаблону новый документ создать и уже туда вставить значения нужные.
Вообщем,запнулась(
прошу не ругать за простоту кода)))
Вложения
Тип файла: rar ИС.rar (49.1 Кб, 135 просмотров)
0
159 / 0 / 1
Регистрация: 18.06.2013
Сообщений: 2
19.06.2013, 09:04
Лучший ответ Сообщение было отмечено как решение

Решение

отвечать не надо. сама сделала)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
19.06.2013, 09:47
Ошибочно
0
ihaustov
21.06.2013, 17:05
Подскажите, пожалуйста, как сделать несколько документов на основе нескольких шаблонов из одной таблицы Excel по принципу, описанному выше?
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 8
09.08.2013, 14:04
Добрый день дорогие форумчане!
Создаю макрос на экспорт данных из Exel (определенная таблица) в определенный шаблон Word (в область закладки) и как раз нашел похожий макрос написананный форумчанином "Скрипт" и взял его за основу. Но не смог подогнать под свои условия. Помогите, пожалуйста дорогие форумчане подкорректировать текст макроса. Не выдает желанного результата.
Вот что получилось:
PureBasic
1
2
3
4
5
6
7
8
9
Sub Экспорт ()
               Сonst a as String = "D:\ДСП\шаблоны(таблица)\клиент\ШаблонКлиента.doc"
               Сonst a as String = "D:\ДСП\шаблоны(таблица)\клиент\клиент.doc"
               Const sBook_1 As String="закладка_1"
               Dim oDocument as Word.Application
               FileCopy Source:= a, Destination:=b
               Set oDocument = Documents.Open (filename:=b)
               oDocument.Bookmarks.Item (sBook_1).Range.Text = Range ("A1:F44") -   [I][этой строкой хотел вставить на место закладки таблицу из Exel [/I]
               Enn Sub
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
09.08.2013, 15:18
Visual Basic
1
2
Сonst a
Сonst a
?
0
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 8
09.08.2013, 15:28
Цитата Сообщение от Hugo121 Посмотреть сообщение
Visual Basic
1
2
Сonst a
Сonst a
?
Спасибо огромное за то что заметили, но это я ошибся когда переписывал код макроса на форум.
При запуске макроса программа жалуется на строку
"oDocument.Bookmarks.Item (sBook_1).Range.Text = Range ("A1:F44")", Пишет что "Method or data member not found" и подчеркивает "Bookmarks"
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
09.08.2013, 17:24
Я думаю ошибка тут:

Visual Basic
1
Set oDocument = Documents.Open (filename:=b)
вот проверенный пример (код в Экселе):


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub Макрос1()
 
Dim sOM As String, sDocNum As String
Dim WordApp As Object
 
    sOM = "G:\0. Шаблоны\Постановление.doc"
    xData = Range("A1").Value
    xFIO = Range("A2").Value
    xS = Range("A3").Value
    xAdr = Range("A4").Value
    xVidIs = Range("A5").Value
    
    'sOM = Range("B9").Value
    'sDocNum = Range("B11").Value
    On Error Resume Next
    Set WordApp = GetObject(, "word.application")
    If WordApp Is Nothing Then
        Set WordApp = CreateObject("word.application")
    End If
    On Error GoTo 0
    With WordApp
        .Visible = True
        .Documents.Open Filename:=sOM
    End With
    WordApp.ActiveDocument.Bookmarks("vData").Range.Text = xData
    WordApp.ActiveDocument.Bookmarks("vFIO").Range.Text = xFIO
    WordApp.ActiveDocument.Bookmarks("vS").Range.Text = xS
    WordApp.ActiveDocument.Bookmarks("vAdr").Range.Text = xAdr
    WordApp.ActiveDocument.Bookmarks("vVidIs").Range.Text = xVidIs
    Set WordApp = Nothing
 
End Sub
Код берет из Excel данные ячеек и вставляет их в закладки в Word.
1
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
09.08.2013, 18:05
Лучший ответ Сообщение было отмечено как решение

Решение

Ещё вариант через HTML. Вот пример если заявления клипать

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'начинаем запись в файл, создаём в той же папке, название ячейка (1,1)
Open ThisWorkbook.Path & "\" & Cells(1, 1).Value & ".doc" For Output As #1
            
'заголовок html
            Print #1, "<HTML>"
            Print #1, "<meta http-equiv=Content-Type content=""text/html; charset=windows-1251"">"
            Print #1, "<style type='text/css'>"
            Print #1, "p{font-family:times new roman;font-size:14pt;}"
            Print #1, "h2{font-family:times new roman;font-size:14pt;}"
            Print #1, "c{font-family:times new roman;font-size:14pt;color:orange;}"
            Print #1, "</style>"
            Print #1, "<body>"
 
                        Print #1, "<P ALIGN=RIGHT>"; "В какую нибудь организацию"
                        Print #1, "<br>"; "даже с очень длинным названием"
                        Print #1, "<br>"; "от "; Cells(2, 1); "."                  'В ячейке (2,1) предположительно от кого заявление
                        Print #1, "<br>";
                        Print #1, "<br>"
                        Print #1, "<br>"
                        Print #1, "<br>"
                        Print #1, "<br>"
                        Print #1, "<br>"; "<H2 align=center>"; "Заявление"; "</h2>"
                        Print #1, "<br>"; "<p>"
                        Print #1, "<br>"; "Заявляю"; "<p>"
                        Print #1, "<br>"; "<p style=color:white>"; Chr(12); "-"; "</p>"              'Переход на новую страницу
 
'закрываем хэдэр
            Print #1, "</body>"
            Print #1, "</HTML>"
 
'закрываем файл
            Close #1
Вот, таким образом на мой вкус куда легче из экселя документы вертать потоком. Только если в таком варианте оставить, то при редактировании файлов и сохранении появляются папки с хтмл информацией, которые некоторых пугают Поэтому можно ещё вот такую функцию пользонуть, чтоб ворд под себя перекодировал.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub ProtToWord(ImyaFayla)
 
Set wa = CreateObject("Word.Application")
wa.Visible = False
 
Set wd = wa.Documents.Open(ImyaFayla)
 
wd.SaveAs2 Filename:=Left(ImyaFayla, Len(ImyaFayla) - 4) & "11111.doc", FileFormat:= _
                    wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
                    True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
                    False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
                    SaveAsAOCELetter:=False, CompatibilityMode:=0
wd.Close
wa.Quit
If Dir(PathName:=ImyaFayla) <> "" Then
    Kill (ImyaFayla)
End If
 
СтарыйПутьКФайлу = Left(ImyaFayla, Len(ImyaFayla) - 4) & "11111.doc"
НовыйПутьКФайлу = ImyaFayla
Name СтарыйПутьКФайлу As НовыйПутьКФайлу
Если брать первый пример, то можно пользовать как
Visual Basic
1
Call ProtToWord(ThisWorkbook.Path & "\" & Cells(1, 1).Value & ".doc")
Если с ненужным лезу, ногами не бить
1
1 / 1 / 0
Регистрация: 21.10.2012
Сообщений: 58
12.08.2013, 14:24
А что означают знаки доллара и процента в Вашем коде программы?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38205 / 21137 / 4311
Регистрация: 12.02.2012
Сообщений: 34,750
Записей в блоге: 14
12.08.2013, 14:40
$ - значит переменная имеет тип String; % - соотв. Integer
1
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 8
12.08.2013, 15:20
Цитата Сообщение от korvindeson Посмотреть сообщение
Ещё вариант через HTML. Вот пример если заявления клипать

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'начинаем запись в файл, создаём в той же папке, название ячейка (1,1)
Open ThisWorkbook.Path & "\" & Cells(1, 1).Value & ".doc" For Output As #1
            
'заголовок html
            Print #1, "<HTML>"
            Print #1, "<meta http-equiv=Content-Type content=""text/html; charset=windows-1251"">"
            Print #1, "<style type='text/css'>"
            Print #1, "p{font-family:times new roman;font-size:14pt;}"
            Print #1, "h2{font-family:times new roman;font-size:14pt;}"
            Print #1, "c{font-family:times new roman;font-size:14pt;color:orange;}"
            Print #1, "</style>"
            Print #1, "<body>"
 
                        Print #1, "<P ALIGN=RIGHT>"; "В какую нибудь организацию"
                        Print #1, "<br>"; "даже с очень длинным названием"
                        Print #1, "<br>"; "от "; Cells(2, 1); "."                  'В ячейке (2,1) предположительно от кого заявление
                        Print #1, "<br>";
                        Print #1, "<br>"
                        Print #1, "<br>"
                        Print #1, "<br>"
                        Print #1, "<br>"
                        Print #1, "<br>"; "<H2 align=center>"; "Заявление"; "</h2>"
                        Print #1, "<br>"; "<p>"
                        Print #1, "<br>"; "Заявляю"; "<p>"
                        Print #1, "<br>"; "<p style=color:white>"; Chr(12); "-"; "</p>"              'Переход на новую страницу
 
'закрываем хэдэр
            Print #1, "</body>"
            Print #1, "</HTML>"
 
'закрываем файл
            Close #1
Вот, таким образом на мой вкус куда легче из экселя документы вертать потоком. Только если в таком варианте оставить, то при редактировании файлов и сохранении появляются папки с хтмл информацией, которые некоторых пугают Поэтому можно ещё вот такую функцию пользонуть, чтоб ворд под себя перекодировал.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub ProtToWord(ImyaFayla)
 
Set wa = CreateObject("Word.Application")
wa.Visible = False
 
Set wd = wa.Documents.Open(ImyaFayla)
 
wd.SaveAs2 Filename:=Left(ImyaFayla, Len(ImyaFayla) - 4) & "11111.doc", FileFormat:= _
                    wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _
                    True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _
                    False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
                    SaveAsAOCELetter:=False, CompatibilityMode:=0
wd.Close
wa.Quit
If Dir(PathName:=ImyaFayla) <> "" Then
    Kill (ImyaFayla)
End If
 
СтарыйПутьКФайлу = Left(ImyaFayla, Len(ImyaFayla) - 4) & "11111.doc"
НовыйПутьКФайлу = ImyaFayla
Name СтарыйПутьКФайлу As НовыйПутьКФайлу
Если брать первый пример, то можно пользовать как
Visual Basic
1
Call ProtToWord(ThisWorkbook.Path & "\" & Cells(1, 1).Value & ".doc")
Если с ненужным лезу, ногами не бить
А второй вариант, это я как понимаю на экспорт из exel в ворд? Если так, то можно в ваш макрос внедрить, экспорт из Exel определенного сегмента и вставка в определенное место вордовского документа!
0
1261 / 147 / 32
Регистрация: 11.02.2011
Сообщений: 418
12.08.2013, 17:02
Ниже, это не второй вариант. Просто открываем вордом сделаный вверху файл и пересохраняем вордом, чтоб он сохранялся по принципу doc а не html документов. Не обязательная штука, просто иначе будут папки появляться при изменении/сохранении документа
1
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 5
21.08.2013, 12:22
Цитата Сообщение от Catstail Посмотреть сообщение
Вот доработанный код. Чтобы выбрать строки для генерации, нужно дважды щелкнуть мышью в пятой колонке нужной строки (см.) А потом - как и раньше - "Пуск"
Здравствуйте, Борис (Catstail). Воспользовавшись и немного видоизменив под свои нужды макрос в Вашем файле "Задачи-VBA-57a.xls" - получил в итоге рабочую форму для автозаполнения договоров в MS Word 2003, НО..столкнулся с непреодолимым препятствием в виде полностью разрушенного (включая таблицы) формата итогового документа. Плюс, не имея достаточных навыков работы в VBA, не могу сообразить, как реализовать в одном макросе ещё и заполнение табличных ячеек в вордовском документе данными из соответствующих ячеек файла эксель, поскольку Ваш макрос разработан для формирования договоров из данных, расположенных в ОДНУ СТРОКУ, а мне необходимо, помимо текста договора, автозаполнение таблицы, т.е. нескольких строк (данные столбцов: Q, R, S, T нужно как-то зациклить, допустим, до 26-й строки и поместить в таблицу ворд). Не могли бы Вы помочь мне разобраться с этой задачей. Файлы экселевского исходника и вордовского шаблона - прилагаю. Заранее благодарен.
Вложения
Тип файла: rar Desktop.rar (38.8 Кб, 128 просмотров)
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38205 / 21137 / 4311
Регистрация: 12.02.2012
Сообщений: 34,750
Записей в блоге: 14
21.08.2013, 17:54
Nosce te ipsum, почему рушится структура документа? Этого быть не должно. Вашу посылку скачал, но не понял, где там мой код. Пишите мне в почту - будем общаться.
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 5
21.08.2013, 21:06
Catstail,

Добавлено через 4 минуты
Цитата Сообщение от Catstail Посмотреть сообщение
Nosce te ipsum, почему рушится структура документа? Этого быть не должно. Вашу посылку скачал, но не понял, где там мой код. Пишите мне в почту - будем общаться.
Ещё раз, здравствуйте, Борис.
Спасибо за оперативный ответ.
По приведённой ниже ссылке в одном из Ваших постов прикреплён файл Задачи-VBA-57a.zip, который и был взят мной за основу (если сравнивать коды - видно, мой эдентичен Вашему):
Вставка текста из Excel в Word
С уважением,
Nosce te ipsum

p.s. Написал Вам в Скайп, поскольку почту не нашёл.

Добавлено через 7 минут
Да, кстати, Ваш код нужно смотреть на 4-м листе (Исходные данные из реквизитов)
С уважением,
Nosce te ipsum
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38205 / 21137 / 4311
Регистрация: 12.02.2012
Сообщений: 34,750
Записей в блоге: 14
21.08.2013, 21:09
Хорошо, завтра я все детально рассмотрю.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12234 / 5081 / 814
Регистрация: 07.08.2010
Сообщений: 14,949
Записей в блоге: 4
21.08.2013, 21:10
не тянет wdDoc.Range.Text = Replace$(wdDoc.Range.Text,
Вложения
Тип файла: zip Договор-МАКРО-рабочий21.zip (26.3 Кб, 163 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.08.2013, 21:10
Помогаю со студенческими работами здесь

Вставка данных из excel в word
Всем привет! Подскажите пожалуйста решение следующей проблемы. В Excel имеется столбец значений. Так же есть word файл. Он является...

Вставка данных из Excel в шаблон WORD
Проблема такая: Есть файл Excel из которогоданные вставляются в шаблон word? Все вставляется куда нужно, только вот в шаблоне есть например...

Вставка связных данных из Excel в Word
Добрый день! Помогите пожалуйста разобраться с проблемой. Есть файл Excel с данными. При вставке данных в текст в Word,...

Вставка текста или таблицы в WORD
Здравствуйте, уважаемые специалисты! У меня есть задача: необходимо в определенных случаях вставлять небольшой текст или таблицу либо в...

Вставка в Word текста из TextBox с форматированием
Не подскажите, как сделать так, чтобы текст из textbox вставлялся в Word, сохраняя при этом форматирование (шрифт, начертание и т.п.),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
Модель здравоохранения 13. Добавление самой системы здравоохранения.
anaschu 22.05.2026
В предыдущем посте мы настроили болезни. Теперь добавим события, которые управляют здоровьем всего коллектива, а также настроим рабочий график и расчёт финансов. В Main создаём четыре события. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru