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

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

05.10.2012, 18:42. Показов 87252. Ответов 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
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,769
Записей в блоге: 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
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,769
Записей в блоге: 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
38223 / 21155 / 4314
Регистрация: 12.02.2012
Сообщений: 34,769
Записей в блоге: 14
21.08.2013, 21:09
Хорошо, завтра я все детально рассмотрю.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12512 / 5086 / 814
Регистрация: 07.08.2010
Сообщений: 14,971
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru