Я пытаюсь преобразовать sh данные Excel в текстовый документ. Словесный документ - это уже существующий документ, который необходимо заполнить значениями и идентификаторами лотов. У меня есть текстовый документ, настроенный так, что все места, требующие заполнения данных из Excel, являются элементами управления Rich Content. Я вставил элемент управления Rich Content Control в каждое место в документе, которое необходимо заполнить.
[! [Введите здесь описание изображения] [1]] [1] Данные Excel
Вставлено только 10 строки для образцов данных.
[! [введите здесь описание изображения] [2]] [2]
Документ Word. Элементы управления расширенным содержимым в столбце «Вес» и «Партия»
Я хочу sh перенести sh «веса» из таблицы Excel в столбец «вес» в слове document и pu sh «массовая партия» из электронной таблицы Excel в столбец «lot» текстового документа.
Sub PushDatatoWord()
'Declare the appropriate variables
Dim wordApp As Word.Application
Dim wDoc As Word.Document
Dim r As Integer
'Create a link to the microsoft word application
Set wordApp = CreateObject("word.application")
'Create variable of the word document
Set wDoc = wordApp.Documents.Open("Worddoc.docx")
wordApp.Visible = True
r = 2
For i = 1 To 20
wDoc.ContentControls(i).Range.Text = Sheets("Boxes_Push").Cells(r, 3)
r = r + 1
Next i
wordApp.Documents.Close
wordApp.Quit
End Sub
Выше код, который я написал, он выталкивает значения, но он не помещает их все в правильный столбец, код перебирает все элементы управления содержимым в текстовом документе и помещает значения в следующий элемент управления. Как разделить элементы управления содержимым в текстовом документе, чтобы я мог отправлять данные в соответствующий столбец ??
ИЗМЕНИТЬ В ОРИГИНАЛЬНОЕ ЗАПИСЬ:
[! [Рабочий лист Excel с диапазоном от B2 , C15] [3]] [3]
[! [Документ Word с именованными элементами управления содержимым] [4]] [4]
'1. Name all content controls on word document. weight1, weight2, weight3, etc. lot1, lot2, lot3, etc.
'2. Create a 2d array with the values and lot . Read range values to arrary.
'3. Use SelectContentControlsByTitle() in a foreach loop with the array created.
Sub dataToWord()
Dim wordApp As Word.Application
Dim wDoc As Word.Document
Dim r As Long
Dim arr As Variant
'create connection to the word application
Set wordApp = CreateObject("word.application")
'Set the word document, content controls named weight1, weight2, etc and lot1, lot2, etc
Set wDoc = wordApp.Documents.Open("C:\Users\tyler.masson\Desktop\PushToWord\testpush_withnames.docx")
wordApp.Visible = True
r = 2
'range created on worksheet from cells B2,C15 called "range"
arr = Range("range").Value
For Each i In arr
wDoc.SelectContentControlsByTitle(Weight).Range.Text = Sheets("testpush").Cells(r, 2)
r = r + 1
Next i
wordApp.Documents.Close
wordApp.Quit
End Sub
У меня проблемы с каждый л oop. Я не совсем уверен, как l oop через каждый элемент управления содержимым по заголовку (вес и партия?), А затем назначать значения в созданном массиве этим элементам управления содержимым.
Я очень признателен за помощь по этот. [1]: https://i.stack.imgur.com/Nb4e8.png [2]: https://i.stack.imgur.com/tsvaM.png [3]: https://i.stack.imgur.com/eyNuj.png [4]: https://i.stack.imgur.com/E6G0c.png