[英]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.