![有没有办法让 Excel 在扫描特定条形码时在工作表之间切换](https://linux22.com/image/1537227/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E8%AE%A9%20Excel%20%E5%9C%A8%E6%89%AB%E6%8F%8F%E7%89%B9%E5%AE%9A%E6%9D%A1%E5%BD%A2%E7%A0%81%E6%97%B6%E5%9C%A8%E5%B7%A5%E4%BD%9C%E8%A1%A8%E4%B9%8B%E9%97%B4%E5%88%87%E6%8D%A2.png)
我在一家小公司工作,需要帮助设置我们的新库存管理系统。我已经准备好了 Excel 文档,条形码扫描仪将条形码直接输入到单元格中,但我遇到了一个问题。我们有 100 多个零件,每个零件都有一个特定的工作表选项卡,每个选项卡都标有特定的零件号。有没有什么办法可以编写一个工作表,当扫描零件号条形码时,比如 1234LOCK,Excel 会自动转到标有 1234LOCK 的工作表?
答案1
1234LOCK
将其放置在您扫描条形码时所输入的工作表的工作表模块中。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim lastRow As Long
If Range("C" & Rows.Count).End(xlUp).Row = Range("D" & Rows.Count).End(xlUp).Row Then
lastRow = Range("C" & Rows.Count).End(xlUp).Row
ElseIf Range("C" & Rows.Count).End(xlUp).Row < Range("D" & Rows.Count).End(xlUp).Row Then
lastRow = Range("D" & Rows.Count).End(xlUp).Row + 1
End If
If Target.Address = "$C$" & lastRow Then
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = Range("C" & lastRow).Value Then
ws.Activate
End If
Next ws
End If
End Sub
我假设您的扫描将触发工作表更改,并且名称将进入A1
。