Private Sub cmbPrdCde_Enter()
Dim ary As Variant, nary As Variant, r As Long
If cmbSDPFLine.Value = "Slat" Then
cmbPrdCde.Clear
cmbPrdCde.Value = ""
With ThisWorkbook.Worksheets(cmbSDPFLine.Value)
ary = .Range("B3", .Range("B" & Rows.Count).End(xlUp).Offset(, 1))
ReDim nary(1 To UBound(ary))
For r = 1 To UBound(ary)
nary(r) = ary(r, 1) & " (" & ary(r, 2) & ")"
Next r
Me.cmbPrdCde.List = nary
End With
End If
End Sub
上面的代码将B列和C列的值放置在一起,并将它们连接到用户窗体上的一个组合框中。 B列包含该商品的产品代码,C列包含该商品的名称。根据选择的内容,如何在只读文本框中显示列C的值。
答案 0 :(得分:0)
您可以从comboBox.list取回C列文本:
Private Sub cmbPrdCde_Change()
x = Split(Me.cmbPrdCde.Value, " (")
Yourtextbox.Value = Left(x(1), Len(x(1)) - 1)
End Sub
或者您可以使用listIndex并从Sheet本身获取值
答案 1 :(得分:0)
可以很容易地实现仅显示只读文本框中仅C列中的值:
' set textbox to read-only
Private Sub UserForm_Initialize()
' change textbox name if required
Me.TextBox1.Enabled = False
End Sub
然后在enter事件中,执行以下操作:
Me.TextBox1.value = Replace(Split(Me.cmbPrdCde.Value, " (")(1), ")", vbNullstring)
但这确实假定在C列的值中没有使用括号。