我的包裹上有物理条形码。我需要过滤掉显示
"CustID: "
的文本,整个条形码读取为 "CustID: 123456798"
。
我的工作表包含
"123456798"
,我需要两者匹配。我有大约 40000 个条形码,因此在同时扫描每个条形码时删除 "CustID: "
效果很好,而且对我来说速度更快。
我在扫描控件源框中的条形码时使用 MS Access,我尝试输入
=Replace("","CustID: ","")
来删除文本,但当我尝试扫描条形码时没有返回任何内容。
我希望条形码显示
"123456789"
而不是 "CustID: 123456798"
,同时在条形码读入我的数字之前过滤掉每个文本。
我的决定是放
Dim lngCurBarCode1 As Long
If Me.txtRec.Text <> "" Then
Me!txtRec.SetFocus
If Me!txtRec.Text Like "RecID: *" Then
Me!txtRec = Replace(Me!txtRec.Text, "RecID: ", "")
End If
lngCurBarCode1 = Me.txtRec.Text
End If
其中 textRec 是文本框
我建议将以下事件过程添加到 MS Access 文本框的
After Update
或 On Change
事件中:
Private Sub YourTextbox_AfterUpdate()
If YourTextbox Like "CustID: *" Then
YourTextbox = Replace(YourTextbox, "CustID: ", "")
End If
End Sub
将
YourTextbox
更改为文本框的名称。
使用 Office 365,作为一个更通用的流程(即多个文本部分或更改的文本都可以被捕获);现在可以使用公式轻松完成此操作。
=LET(arr, VSTACK(CHAR(SEQUENCE(26,,65)),{" ";":"}), REDUCE(A1, arr, LAMBDA(a,b,SUBSTITUTE(a,b,""))))
创建 A-Z 数组并将其附加到“”和“:”数组
然后将数组值依次替换为空文本,以保留引用单元格中的数字分量。
如果您想删除所有数字,您可以执行类似的操作:
=REDUCE(A1, SEQUENCE(10,,0), LAMBDA(a,b, SUBSTITUTE(a, b, "")))