Заполните раскрывающийся список в слове из столбца в Excel, а затем при изменении раскрывающегося списка заполните текстовые поля связанным полем (VBA) - PullRequest
1 голос
/ 20 октября 2010

У меня есть следующий код в макросе word 2007, где я заполняю раскрывающийся список именами клиентов из таблицы Excel

Private Sub UserForm_Initialize()
Dim i As Integer
Dim cn As ADODB.Connection
Dim rsT As New ADODB.Recordset
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=CCustomers.xls;Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With
rsT.Open "Select distinct * from Customer", cn, adOpenStatic

i = 0

With rsT
' This code populates the combo box with the values
' in the YourNamedRange named range in the .xls file. this exampletable is 2 rows by 6 columns and is set as a named range.

Do Until .EOF
ComboBox_Company.AddItem (i)
ComboBox_Company.Column(0, i) = rsT.Fields(0).Value
.MoveNext
i = i + 1
Loop
End With
End Sub

Итак, у меня есть столбец с именами клиентов, и я создал именованный диапазон (Customer), и он заполняет раскрывающийся список. Однако, когда я выбираю клиента в раскрывающемся списке, я хочу заполнить два поля адреса адресом (1 улица, 2 город).

Private Sub cbo_customer_Change()
            Dim customerName As String
            customerName = cbo_customer.Value
End Sub

Электронная таблица содержит около 10 столбцов, в первом - «Клиент», в 9-м - адрес «1», в последнем - «Адрес 2». Как я могу использовать переменную customer для заполнения полей адреса? Нужно ли создавать новый именованный диапазон со всеми полями и иметь что-то вроде выберите клиента, адрес1, адрес2 из myRange, где customer = customerName?

1 Ответ

0 голосов
/ 20 октября 2010

Вы ответили на вопрос самостоятельно, создайте именованный диапазон с нужными вам столбцами, а затем выполните выбор:

"SELECT customer, address1, address2 FROM NewRange WHERE customer = '" & customerName & "'"

В новый набор записей и получите в нем поля адреса из элемента 0.

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