0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 188
1

Передача данных из Excel в Word (через Закладки) из нескольких страниц Excel

18.04.2016, 18:25. Показов 7372. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Товарищи прошу помощи!

В книге есть 3 закладки:
Org - данные об организации (только 1 строчка всегда будет),
KL - данные о клиентах - постоянное добавление будет клиентов (ключевое поле ИНН),
DOG - список договоров (ключевое поле ИНН) постоянное добавление будет.

Задача состоит в том, что теперь эти данные нужно передать в Word для заполнения шаблона через закладки.

Логика такая:
На форме ввожу ИНН - нажимаю на кнопку и получаю "сведённые" данные из DOG и KL + данные из Org, а дальше уже в Word создаю для всех данных закладки.
В файле нет форм - это просто тестовый пример.

Сейчас при необходимости быстрой раскидки данных - использую код:


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
Private Sub CommandButton1_Click()
cFileD = Sheets("TEMPLATE").Cells(2, 4)
q1 = Sheets("CL").Cells(2, 1)
w1 = Sheets("CL").Cells(2, 2)
e1 = Sheets("CL").Cells(2, 3)
r1 = Sheets("CL").Cells(2, 4)
 
path = ThisWorkbook.path
    Set wd = CreateObject("Word.Application")
    wd.Visible = True
    wd.Documents.Open Filename:=cFileD
    With wd.ActiveDocument.Bookmarks
    .Item("Q").Range.Text = q1
    .Item("W").Range.Text = w1
    .Item("E").Range.Text = e1
    .Item("R").Range.Text = r1
 
        End With
        
wd.ActiveDocument.SaveAs2 Filename:=path & "" & "123.doc"
wd.ActiveDocument.Close
wd.Quit
Set wd = Nothing
End Sub
Вложения
Тип файла: xlsx Bookmarks.xlsx (9.8 Кб, 65 просмотров)
0
18.04.2016, 18:25
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2016, 18:25
Ответы с готовыми решениями:

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

Работа с word через excel (передача строки)
Здравствуйте, возникла следующая проблемка, а точнее вопрос: Есть файл excel, который при определенном действии создает файл word. ...

Импорт данных из нескольких Excel файлов в Word
Доброго всем времени суток! У меня имеется очень много эксель файлов с нумерацией имен от 1 до 100 в них одинаковые диапазоны ячеек,...

8
 Аватар для Alex77755
11522 / 3808 / 682
Регистрация: 13.02.2009
Сообщений: 11,226
18.04.2016, 20:26 2
Сейчас при необходимости быстрой раскидки данных - использую код:
Ну и? Уже раскидываешь! Быстро!
Что не так-то?
0
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 188
18.04.2016, 20:47  [ТС] 3
Alex77755, не получается сцепить данные по инн
0
 Аватар для Alex77755
11522 / 3808 / 682
Регистрация: 13.02.2009
Сообщений: 11,226
18.04.2016, 21:04 4
постоянное добавление будет.
В смысле в одну и ту же закладку дописывать надо?
0
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 188
18.04.2016, 21:14  [ТС] 5
Alex77755, нет добавление идёт в следующую пустую строку, как в БД
0
 Аватар для Alex77755
11522 / 3808 / 682
Регистрация: 13.02.2009
Сообщений: 11,226
18.04.2016, 21:18 6
Ну ты же просто записываешь
Visual Basic
1
.Item("Q").Range.Text = q1
Пробуй дописывать с переносом строки
0
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 188
18.04.2016, 21:25  [ТС] 7
Alex77755, наверное, Вы не поняли)
Попытаюсь объяснить.
Этот файл - как БД.
Что я хочу: вызываю форму, ввожу ИНН и нажимаю на кнопку - "сформировать документ".
Далее, наверно, должен формироваться массив некий, по следующему правилу: ИНН + (строка из KL, в которой находится данный ИНН) + (строка из DOG, в которой находится данный ИНН) + единственная строка из ORG.
Далее уже каждое значение присваивается конкретной закладке и передаётся в Word, т.е. полученный массив не нужно записывать в ячейки excel, а сразу передать в Word.
0
 Аватар для Alex77755
11522 / 3808 / 682
Регистрация: 13.02.2009
Сообщений: 11,226
18.04.2016, 21:35 8
Далее, наверно, должен формироваться массив некий, по следующему правилу: ИНН + (строка из KL, в которой находится данный ИНН) + (строка из DOG, в которой находится данный ИНН) +
Ну так что мешает сцепить?
Visual Basic
1
s=q1 & w1 & e1 & r1
Добавлено через 1 минуту
По Инн выбрать поможет функция ВПР
0
0 / 0 / 0
Регистрация: 30.08.2014
Сообщений: 188
20.04.2016, 15:03  [ТС] 9
Alex77755, так это же "всё в кашу", а мне нужно, что бы каждая ячейка = конкретной Закладке

Добавлено через 22 часа 18 минут
Alex77755, всё я разобрался, как надо сделать - Вы правы были!
Помогите, пожалуйста с одной проблемой, что бы не создавать новую тему:

К сожалению фала нет, но есть код. У меня значения из Checkbox не передаются в Textbox (работает через раз - то запускаешь макрос всё работает - то не передаёт)

У меня 3 формы - и в каждой есть чекбокс - заполнение чекбокса идёт из функции:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function Func_Sort(B As MSForms.ComboBox)
Dim i As Long, c As Long, S As String, L As Long, r As Long
For i = 2 To Cells.Rows.Count 'заполняем со второй строки
  S = Sheets("DATA").Cells(i, 9)             'первого столбца
  If S = "" Then Exit For
  L = 0
  r = B.ListCount - 1
  Do While r >= L
    c = (r + L) \ 2
    Select Case StrComp(S, B.List(c))
      Case -1: r = c - 1
      Case 1: L = c + 1
      Case Else: GoTo NextI
    End Select
  Loop
  B.AddItem S, L
NextI:
Next i
End Function
и код одной из форм:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub UserForm_Initialize()
M_SORT.Func_Sort F_Edit.ComboBox1
If Me.TextBox1.Value = "" Then
Me.CommandButton1.Enabled = False
End If
End Sub
 
Private Sub F_Edit_ComboBox1_Change()
 Application.ScreenUpdating = False
   Cells(1, 1).Activate
    r = M_SEARCH.Func_SEARCH(Me.ComboBox1.Value)
         For i = 1 To UBound(r)
        For c = 1 To 21
            Me.Controls("TextBox" & c).Value = Sheets("DATA").Cells(r(i), c)
        Next c
        Next i
        
        If Me.TextBox1.Value <> "" Then
CommandButton1.Enabled = True
End If
        End Sub
Код функции поиска:

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
Public Function Func_SEARCH(a)
Dim r()
If a = "" Then
    ReDim Preserve r(0)
    r(0) = -1
    Func_SEARCH = r
    Exit Function
End If
 
Set c = Cells.Find(What:=a, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If c Is Nothing Then
    ReDim Preserve r(0)
    Func_SEARCH = r
    Exit Function
End If
ReDim Preserve r(0)
r(0) = c.Row
 
Set st = c
Do
    Set c = Cells.FindNext(After:=c)
    i = i + 1
    ReDim Preserve r(i)
    r(i) = c.Row
Loop Until c.Address = st.Address
Func_SEARCH = r
End Function
Добавлено через 19 часов 9 минут
Все проблемы решил, но появилась новая - не могу реализовать повтор данных подгруженных в Word через закладки, т.е. мне нужно, что бы одна закладка была в 3 местах.
Кто знает, как это можно сделать?
0
20.04.2016, 15:03
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2016, 15:03
Помогаю со студенческими работами здесь

Передача данных в Excel из таблицы Word
Здравствуйте :) У меня такой мелкий, наверное, для опытных людей вопрос :) Хочу написать макрос, который при открытии книги соберет...

Перенос данных из нескольких Excel в один документ Word
Здравствуйте уважаемые! Помогите понять как сделать следующее... В ходе работы некоторой программы на диске С:\ поочередно создаются...

Передача данных из Excel в Word (для чайника)
Здравствуйте! В VBA я почти полный ноль. Когда-то чего-то учила. Моим рекламным агентам необходимо следующее: в Excel они заполняют счета,...

Excel & Word: Передача данных из разных ячеек
Пара вопросов знатокам: Set WordObj = CreateObject(&quot;Word.Application&quot;) Set WordDoc = WordObj.Documents.Add(Путь) ...

Word + Excel, Импорт данных из Excel в шаблон Word с условиями
Здравствуйте! Помогите, пожалуйста. Есть файл Word с расставленными закладками-метками и файл Excel с несколькими листами. С помощью...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Ошибка "Cleartext HTTP traffic not permitted" в Android
hw_wired 13.02.2025
При разработке Android-приложений можно столнуться с неприятной ошибкой "Cleartext HTTP traffic not permitted", которая может серьезно затруднить отладку и тестирование. Эта проблема особенно. . .
Изменение версии по умолчанию в NVM
hw_wired 13.02.2025
Node Version Manager, или коротко NVM - незаменимый инструмент для разработчиков, использующих Node. js. Многие сталкивались с ситуацией, когда разные проекты требуют различных версий Node. js,. . .
Переименование коммита в Git (локального и удаленного)
hw_wired 13.02.2025
Git как система контроля версий предоставляет разработчикам множество средств для управления этой историей, и одним из таких важных средств является возможность изменения сообщений коммитов. Но зачем. . .
Отличия Promise и Observable в Angular
hw_wired 13.02.2025
В веб-разработки асинхронные операции стали неотъемлимой частью почти каждого приложения. Ведь согласитесь, было бы странно, если бы при каждом запросе к серверу или при обработке больших объемов. . .
Сравнение NPM, Gulp, Webpack, Bower, Grunt и Browserify
hw_wired 13.02.2025
В современной веб-разработке существует множество средств сборки и управления зависимостями проектов, каждое из которых решает определенные задачи и имеет свои особенности. Когда я начинаю новый. . .
Отличия AddTransient, AddScoped и AddSingleton в ASP.Net Core DI
hw_wired 13.02.2025
В современной разработке веб-приложений на платформе ASP. NET Core правильное управление зависимостями играет ключевую роль в создании надежного и производительного кода. Фреймворк предоставляет три. . .
Отличия между venv, pyenv, pyvenv, virtualenv, pipenv, conda, virtualenvwrapp­­er, poetry и другими в Python
hw_wired 13.02.2025
В Python существует множество средств для управления зависимостями и виртуальными окружениями, что порой вызывает замешательство даже у опытных разработчиков. Каждый инструмент создавался для решения. . .
Навигация с помощью React Router
hw_wired 13.02.2025
React Router - это наиболее распространенное средство для создания навигации в React-приложениях, без которого сложно представить современную веб-разработку. Когда мы разрабатываем сложное. . .
Ошибка "error:0308010C­­:dig­ital envelope routines::unsup­­ported"
hw_wired 13.02.2025
Если вы сталкиваетесь с ошибкой "error:0308010C:digital envelope routines::unsupported" при разработке Node. js приложений, то наверняка уже успели поломать голову над её решением. Эта коварная ошибка. . .
Подключение к контейнеру Docker и работа с его содержимым
hw_wired 13.02.2025
В мире современной разработки контейнеры Docker изменили подход к созданию, развертыванию и масштабированию приложений. Эта технология позволяет упаковать приложение со всеми его зависимостями в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru