繁体   English   中英

从excel的列中填充单词下拉列表,然后在下拉列表更改中填充具有相关字段(VBA)的文本框

[英]Populate a dropdown in word from column in excel and then on dropdown change populate textboxes with related field (VBA)

我在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

因此,II有一个包含客户名称的列,我创建了一个命名范围(客户),并填充了下拉列表。 但是,当我在下拉列表中选择一个客户时,我想用(1条街道,2个城市)该客户的地址填充两个地址字段。

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

电子表格大约有10列,“客户”在第一列中,“地址1”在第9列中,“地址2”在最后一列中。 如何使用可变客户填充地址字段? 我是否必须使用所有字段创建一个新的命名范围,并从myRange中选择客户,地址1,地址2,其中客户=客户名称?

您自己回答了问题,使用所需的列创建一个命名范围,然后执行选择:

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

进入一个新的记录集,并从其中的项目0获取地址字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM