【VBA研究】进⼊⽂本框后其内容全选
作者:iamlaosong
做⼀个扫描核对⼯具,扫描的条码在⽂本框中,表单中只有⼀个⽤于扫描的⽂本框是有效的,另⼀个⽂本框⽤于显⽰核对正确时显⽰货品数量,不过这个⽂本框⽤户是不能操作的,如下图所⽰:
由于需要反复扫描条码,所以希望每次扫描时能覆盖上次扫描的内容,这有两种⽅法,⼀种是核对完毕后清除⽂本框的内容,另⼀种⽅法就是将内容全选,显然,第⼆种⽅法较好,因为核对完毕后还可以看到上次扫描的内容,如果清空则有点怪怪的,看着不爽,设置全选的代码如下:
。。。
BarCode = TextBox1.Value
。。。
TextBox1.SelStart = 0
TextBox1.SelLength = Len(BarCode)
。。。
附:完整的核对⼦程序
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
'取条码值
BarCode = TextBox1.Value
'该条码是否本站货品
For row2 = DatLine To MaxRow2
If Scan(row2) = BarCode Then
TextBox2.Value = Qty(row2)
If Cells(row2, 10) <> "OK" Then
OK_No = OK_No + 1
Cells(row2, 10) = "OK"
Else
TextBox2.Value = "重复"
End If
Exit For
End If
Next row2
'如果没有到,检查是否为箱码,通过箱码到货品条码再次核对
If UserForm1.CheckBox1.Value And row2 > MaxRow2 Then
'箱码对应条码
For k = 1 To MaxRowBox
If ScanBox(k, 2) = BarCode Then
BarCode = ScanBox(k, 1)
Exit For
End If
Next k
If k <= MaxRowBox Then
'到箱码对应货品条码,再次核对
html内容文本框For row2 = DatLine To MaxRow2
If Scan(row2) = BarCode Then
TextBox2.Value = Qty(row2)
If Cells(row2, 10) <> "OK" Then
OK_No = OK_No + 1
Cells(row2, 10) = "OK"
Else
TextBox2.Value = "重复"
End If
Exit For
End If
Next row2
End If
End If
'货品条码和箱码均不是
If row2 > MaxRow2 Then
tmp = MsgBox("本条码⾮本站货品,条码:" & BarCode, vbOKOnly + vbExclamation, "iamlaosong")            TextBox2.Value = ""
ErrNo = ErrNo + 1
End If
TextBox1.SelStart = 0
TextBox1.SelLength = Len(BarCode)
'TextBox1.Value = ""
End If
End Sub

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。