在只读文本框内显示所选内容

  • 本文关键字:显示 文本 只读 excel vba
  • 更新时间 :
  • 英文 :

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 列的值。

你可以从comboBox.list中获取C列文本:

Private Sub cmbPrdCde_Change()
x = Split(Me.cmbPrdCde.Value, " (")
Yourtextbox.Value = Left(x(1), Len(x(1)) - 1)
End Sub

或者您可以使用列表索引并从工作表本身获取值

在只读文本框中仅显示 C 列中的值可以很容易地实现,如下所示:

' set textbox to read-only
Private Sub UserForm_Initialize()
' change textbox name if required
Me.TextBox1.Enabled = False
End Sub

然后在输入事件中,执行以下操作:

Me.TextBox1.value = Replace(Split(Me.cmbPrdCde.Value, " (")(1), ")", vbNullstring)

但是,这确实假定 C 列的值中没有使用括号。

最新更新