|
发表于 2019-12-15 08:19
来自手机
|
显示全部楼层
本帖最后由 zpy2 于 2019-12-15 08:46 编辑
zpy2 发表于 2019-12-15 07:01
'If a = Sheets("数据表").Range("C1:C" & rowNum).Cells(i, 3).Value Then
' 'MsgBox "该箱已经录入 ...
Private Sub TextBox1_Keydown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim rowNum As Long
rowNum = Sheets("数据表").Range("A" & Sheets("数据表").Rows.Count).End(xlUp).Row
'取出工作表的数据
Dim crr
crr = Sheets("数据表").Range("A1:A" & rowNum)
'取出当前扫描的条码
'Dim dangMa As String
'dangMa = Trim(TextBox1.Text)
'循环所有数据,对比条码
rem Dim i As Long, q As Long, a As String, b As Long, c As Long
For i = 1 To rowNum
If KeyCode.Value = 13 Then
'这里判断是否重复扫码了同一包商品
if 重复(TextBox1.Text) then exit sub
rem 具体是哪几位 和 第一列 比对 自己调节,我这里暂时是前8位
a = Mid(TextBox1.Text, 1, 8)
If a = Sheets("数据表").Cells(i, 1).Value Then
rem 这里你是不是自己改的,其实最好是先别改代码,否则,代码看不清啥意思了。
'Sheets("数据表").Cells(i, 3).Value = a
'If a = Sheets("数据表").Range("C1:C" & rowNum).Cells(i, 3).Value Then
' 'MsgBox "该箱已经录入,请核对!"
rem b = Val(Mid(a, 5, 7))
rem c = b * 10 + 3 这里你是不是要改数量?
rem 你这段代码 实在是 看不明白 要干嘛
rem If c = Trim(crr(i, 1)) Then rem 这句,前面的判断?
Sheets("数据表").Cells(i, 2).Value = Cells(i, 2).Value + 1
TextBox1.Text = ""
rem End If
End If
End If
Next
End Sub
function 重复(a as string)
rowNum = Sheets("数据表").Range("C" & Sheets("数据表").Rows.Count).End(xlUp).Row
Dim crr
crr = Sheets("数据表").Range("c1:c" & rowNum)
'循环所有数据,对比条码
rem Dim i As Long, q As Long, a As String, b As Long, c As Long
For i = 1 To rowNum
If a = Sheets("数据表").Range("C1:C" & rowNum).Cells(i, 3).Value Then
MsgBox "该箱已经录入,请核对!"
重复=true
exit function
else
'不重复 保留到 新的一行
Sheets("数据表").Cells(rowNum+1, 3).Value = a
重复=false
exit function
End If
Next
end function
手机上写的代码,不知道是不是这个意思。。。。 |
|