|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.01.2016, 21:17 | #1 |
Пользователь
Регистрация: 15.01.2016
Сообщений: 24
|
Макрос связи Excel с Word
Здравствуйте, уважаемые. Есть макрос, который осуществляет связь между ячейками основной таблицы и шаблоном в Excel:
Sub my1() Dim r As Long Dim wb As Workbook, wb1 As Workbook, sFT As Worksheet Set wb = ThisWorkbook Set sFT = wb.Sheets("FT") Application.ScreenUpdating = False Application.Calculation = xlCalculationManual On Error GoTo erHdl For r = 3 To sFT.Cells(sFT.Rows.Count, 1).End(xlUp).Row Step 2 wb.Sheets("Шаблон").Copy after:=wb1.Sheets(wb1.Sheets.Count) shRdy: With wb1.Sheets(wb1.Sheets.Count) .Name = Left(sFT.Cells(r, 1), 31) .Range("C15").Formula = "=" & sFT.Cells(r, 1).Address(external:=True) .Range("D15").Formula = "=" & sFT.Cells(r, 23).Address(external:=True) .Range("G15").Formula = "=" & sFT.Cells(r, 3).Address(external:=True) .Range("H15").Formula = "=" & sFT.Cells(r, 4).Address(external:=True) .Range("H16").Formula = "=" & sFT.Cells(r, 5).Address(external:=True) .Range("H17").Formula = "=" & sFT.Cells(r, 6).Address(external:=True) .Range("H18").Formula = "=" & sFT.Cells(r, 7).Address(external:=True) .Range("I15").Formula = "=" & sFT.Cells(r, 8).Address(external:=True) .Range("I16").Formula = "=" & sFT.Cells(r, 9).Address(external:=True) .Range("I17").Formula = "=" & sFT.Cells(r, 10).Address(external:=True) .Range("I18").Formula = "=" & sFT.Cells(r, 11).Address(external:=True) .Range("J16").Formula = "=" & sFT.Cells(r, 16).Address(external:=True) .Range("K16").Formula = "=" & sFT.Cells(r, 17).Address(external:=True) .Range("L15").Formula = "=" & sFT.Cells(r, 12).Address(external:=True) .Range("L16").Formula = "=" & sFT.Cells(r, 13).Address(external:=True) .Range("L17").Formula = "=" & sFT.Cells(r, 14).Address(external:=True) .Range("L18").Formula = "=" & sFT.Cells(r, 15).Address(external:=True) .Range("G26").Formula = "=" & sFT.Cells(r, 27).Address(external:=True) .Range("C27").Formula = "=" & sFT.Cells(r + 1, 1).Address(external:=True) .Range("D27").Formula = "=" & sFT.Cells(r + 1, 23).Address(external:=True) .Range("G27").Formula = "=" & sFT.Cells(r + 1, 3).Address(external:=True) .Range("H27").Formula = "=" & sFT.Cells(r + 1, 4).Address(external:=True) .Range("H28").Formula = "=" & sFT.Cells(r + 1, 5).Address(external:=True) .Range("H29").Formula = "=" & sFT.Cells(r + 1, 6).Address(external:=True) .Range("H30").Formula = "=" & sFT.Cells(r + 1, 7).Address(external:=True) .Range("I27").Formula = "=" & sFT.Cells(r + 1, 8).Address(external:=True) .Range("I28").Formula = "=" & sFT.Cells(r + 1, 9).Address(external:=True) .Range("I29").Formula = "=" & sFT.Cells(r + 1, 10).Address(external:=True) .Range("I30").Formula = "=" & sFT.Cells(r + 1, 11).Address(external:=True) .Range("J28").Formula = "=" & sFT.Cells(r + 1, 16).Address(external:=True) .Range("K28").Formula = "=" & sFT.Cells(r + 1, 17).Address(external:=True) .Range("L27").Formula = "=" & sFT.Cells(r + 1, 12).Address(external:=True) .Range("L28").Formula = "=" & sFT.Cells(r + 1, 13).Address(external:=True) .Range("L29").Formula = "=" & sFT.Cells(r + 1, 14).Address(external:=True) .Range("L30").Formula = "=" & sFT.Cells(r + 1, 15).Address(external:=True) .Range("G38").Formula = "=" & sFT.Cells(r + 1, 27).Address(external:=True) End With Next r MsgBox "Готово" GoTo fin erHdl: If Err.Number = 91 Then 'Object variable or With block variable not set wb.Sheets("Шаблон").Copy Set wb1 = ActiveWorkbook Resume shRdy End If MsgBox "Непредвиденная ошибка" & Err.Number & vbLf & Err.Description, vbCritical fin: Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub На основе шаблона он создает книгу и в зависимости от числа строк в общей таблице, создает такое же число листов. Необходимо по такому же принципу формировать листы в документе Word. То есть, есть шаблон в Word к которому будет обращаться макрос и связывать ячейки из Excel с закладками в шаблоне. Связь должна быть RTF. Как такое можно реализовать, подскажите пожалуйста? |
21.01.2016, 21:48 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
В Word есть такая опция, - Слияние называется
Она как раз для таких задач Цитата:
ну а если со слиянием не разберётесь, — можете формировать отдельные файлы Word (не листы в одном файле, в отдельные документы Word) нажатием одной кнопки, при помощи этой надстройки: http://excelvba.ru/programmes/FillDocuments |
|
21.01.2016, 22:49 | #3 |
Пользователь
Регистрация: 15.01.2016
Сообщений: 24
|
Слияние не подходит. Нужна именно связь RTF и чтобы именно в одном документе создавались листы.
|
22.01.2016, 02:35 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
судя по тому, что Вы описываете - это документ слияния, но Вам безусловно виднее... потому что Вы знаете, а мы только догадываемся
а по поводу слияние подходит-не подходит - ситуация хорошо коррелируется со старым анекдотом: Одесса, суд, бракоразводный процесс. судья -- а Вы не могли бы обьяснить, что подтолкнуло Вас к решению о расторжении брака? -- она меня не удовлетворяет! в зале суда гул неодобрения и четкий голос: -- не, ну вы посмотрите - пол Одессы она удовлетворяет!!! а его нет!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
22.01.2016, 06:00 | #5 |
Форумчанин
Регистрация: 10.02.2012
Сообщений: 109
|
Доброе время суток
Заготовка для вставки связи в ячейки таблицы Word Код:
|
22.01.2016, 08:15 | #6 |
Пользователь
Регистрация: 15.01.2016
Сообщений: 24
|
Попробую более корректно описать задачу. Необходимо из рабочей книги, строку 3 (пусть все строки будут называться "r"), столбец В (по счету он "2", вместе получается "r, 2"), связать (связь RTF) с закладкой "закладка1" в шаблоне Word, который находится на "D:\shablon\doc1.docx". Так как строк много, все они должны формироваться автоматически на следующих листах в этом же документе. Гибкость макроса должна заключаться в том, что если мне понадобится связать с шаблоном две строки я добавлю в макросе "r+1, 2" и изменю шаг цикла на "2". Соответственно, так же, ручками, буду добавлять столбцы и закладки.
Последний раз редактировалось eemil; 22.01.2016 в 08:20. |
22.01.2016, 10:23 | #7 | |
Форумчанин
Регистрация: 10.02.2012
Сообщений: 109
|
Цитата:
Код:
|
|
22.01.2016, 10:38 | #8 |
Пользователь
Регистрация: 15.01.2016
Сообщений: 24
|
К сожалению я не пойму, что к чему в вашем макросе В каком месте код ссылается на листы в Excel, в каком месте описана строка и столбец, в каком месте код ссылается на шаблон Word, в каком месте код ссылается на закладки и в каком месте задавать шаг цикла? Пожалуйста, я прошу помочь составить макрос по типу того, который я привел в первом сообщении. Просто он оптимально подходит для моей задачи.
|
22.01.2016, 11:33 | #9 | |
Форумчанин
Регистрация: 10.02.2012
Сообщений: 109
|
Цитата:
Того чего вы хотите - у меня нет желания писать за вас, а научить вас... слишком большая трата времи. Думаю, вам проще обратиться в раздел платных заказов. |
|
22.01.2016, 12:35 | #10 |
Пользователь
Регистрация: 15.01.2016
Сообщений: 24
|
Во первых - я не нуждаюсь в ваших диагнозах и оценке моих способностей. Во вторых - я прошу о помощи не конкретно вас, а любого кто прочтет это сообщение. Если вы не можете или не хотите что-то делать, я вас не заставляю, соответственно писать о своих намерениях не стоило, тем более если вы так цените свое время (зачем тратить его на бессмысленное сообщение?). Я четко и конкретно определил задачу, кто готов помочь - я буду благодарен.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос на изменение источника связи между Word и Excel | Василий. | Microsoft Office Word | 16 | 24.11.2018 20:29 |
Ускорить обновление связи Word и Excel | Foxx | Microsoft Office Word | 1 | 06.03.2012 00:26 |
Word долго обновляет связи с Excel | ZSFoS | Microsoft Office Word | 1 | 26.12.2011 12:59 |
Связи excel c word | Vladymyr17 | Microsoft Office Excel | 0 | 28.09.2009 15:52 |