Automati c Word Do c Завершение из Excel - PullRequest
0 голосов
/ 25 марта 2020

Я следую некоторым советам и, конечно, открыт для других предложений о том, как добиться того, что я пытаюсь сделать здесь, поэтому не стесняйтесь предлагать альтернативы.

Я пытаюсь составить цитату документ, в котором мы можем автоматически заполнять некоторые поля (они будут спецификациями продукта) на основе выбора опции в списке. До сих пор я создал свой выпадающий список и заполнил его двумя вариантами. Затем я создал 4 «спецификации», которые я хочу заполнить, и создал элемент управления контентом для каждого.

В данный момент я пытаюсь заполнить эти элементы управления контентом из листа Excel, где различные элементы списка - это названия листов, а спецификации приведены в столбцах каждого листа.

Sub chillerdatafromexcel()

Dim xlApp As Object
Dim xlbook As Object

Set xlApp = CreateObject("Excel.Application")
Set xlbook = xlApp.Workbooks.Open("C:\Users\chris.garratt\Documents\Chiller Options.xlsx")
'Set xlbook.Sheets = ThisDocument.SelectContentControlsByTitle("Chiller Supplier")
ActiveDocument.SelectContentControlsByTitle("MaxCoolingPwr").Item(1).PlaceholderText = xlbook.Sheets(ActiveDocument.SelectContentControlsByTitle("Chiller Supplier").Item(1).Range).Cells(2, 2)

    End Sub

Пример слова Лист Excel

Любые идеи приветствуются. Я долгое время не занимался текстовым кодированием / написанием сценариев, поэтому не стесняйтесь, если вы не согласны.

Заранее спасибо.

Крис

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

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

Я потратил некоторое время на работу над этим вчера, прежде чем пришли ответы, и мне удалось его взломать (Это удивительно что будет делать уход и возвращение с парой глаз * fre sh).

В конце я остановился на этом:

Sub chillerdatafromexcel()
Dim xlApp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Sheets
Dim X As Integer
Dim ChillerOpt As String
Dim Offset As Integer

    Set xlApp = CreateObject("Excel.Application")
    Set xlbook = xlApp.Workbooks.Open(ActiveDocument.Path & "\Chiller Options.xlsx")
    Offset = ThisDocument.SelectContentControlsByTitle("Chiller Supplier").Count
    ChillerOpt = ThisDocument.SelectContentControlsByTitle("Chiller Supplier").Item(1).Range


    For X = (Offset + 1) To (Offset + 4)

        ThisDocument.ContentControls(X).Range = xlbook.Sheets(ChillerOpt).Cells(X, 2)

    Next X

    xlbook.Close
    xlApp.Quit

End Sub

У меня есть несколько дополнительных переменных в там будет актуально, когда я использую эту функцию в контексте более крупного документа. Я собирался сделать его максимально гибким. Избегать жесткого кодирования. У меня есть 4 ячейки в таблице, которую я хочу добавить, отсюда диапазон X.

Спасибо за вашу помощь.

Крис

0 голосов
/ 26 марта 2020

См .:

Другие, которые могут оказаться полезными:

Зависит от выпадающего списка Элементы управления содержимым

Иерархические элементы управления раскрывающимся содержимым

Зависимые элементы управления содержимым текста

Контроль содержимого и условное форматирование поля формы

Создание и учет взаимоисключающих элементов управления флажками

Добавление новой строки в таблицу в документе с элементами управления содержимым:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...