Có cách nào để get / chương trình excel chuyển đổi giữa các trang tính khi bạn quét mã vạch không gian


0

Tôi làm việc cho một doanh nghiệp nhỏ và cần trợ giúp để thiết lập hệ thống quản lý hàng tồn kho mới của chúng tôi. Tôi đã có tài liệu excel sẵn sàng và máy quét mã vạch nhập mã vạch trực tiếp vào các ô nhưng tôi gặp sự cố. Chúng tôi có hơn 100 phần và mỗi phần có một tab bảng tính cụ thể, mỗi phần được gắn nhãn với một số phần cụ thể. Có cách nào để tôi có thể mã hóa một bảng tính mà khi quét mã vạch một phần số 1234LOCK mà Excel sẽ tự động chuyển đến bảng có nhãn 1234LOCK không?


1
Khi mã vạch được quét, làm sao Excel biết điều đó? Nếu sau khi được quét, Excel sẽ đặt mã vạch đó vào Main Sheetô A1, bạn có thể tạo một Workbook Change()sự kiện có thể chuyển đến trang tính A1đề cập đến. Bạn đã thử những gì?
BruceWayne

Tại thời điểm quét mã vạch, nó sẽ đặt thông tin mã vạch vào bất kỳ khối nào con trỏ đang bật. Tôi chưa thực sự cố gắng nhiều vì tôi vẫn đang học. Vì vậy, để làm rõ tuyên bố của bạn, nếu nói ô chính của ô A1 nói 1234LOCK và tôi quét 1234LOCK thì tôi có thể tạo Thay đổi sổ làm việc đi đến trang tính 1234LOCK không?
William Aaron Winfrey

Để làm rõ hơn, tôi đã bắt đầu thiết lập một macro, điều tôi muốn là một khi nhấp vào nó sẽ lắng nghe một đầu vào và một khi nhận được nó sẽ chuyển đến trang đầu vào. Ví dụ: Nếu tôi nhấp vào nút chọn và quét trong 1234LOCK thì nó sẽ chuyển đến trang 1234LOCK
William Aaron Winfrey

Câu trả lời:


0

Đặt phần này vào mô-đun bảng tính của trang tính mà bạn 1234LOCKsẽ đặt vào khi bạn quét mã vạch.

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

Tôi giả sử việc quét của bạn sẽ kích hoạt thay đổi trang tính và tên sẽ đi vào A1.


Điều đó dường như đang đưa tôi đi đúng hướng, Nó chắc chắn đã giúp rất nhiều!
William Aaron Winfrey

Cuối cùng tôi đã có tất cả những gì hoạt động chính xác, tôi có một câu hỏi cuối cùng. Tôi có một Macro được thiết lập với mã cơ bản sau. Private Sub CommanButton2_click () Phạm vi ("C99999"). Kết thúc (xlUp), offset (1,0) .select
William Aaron Winfrey

Cuối cùng tôi đã có tất cả những gì hoạt động chính xác, tôi có một câu hỏi cuối cùng. Tôi có một Macro được thiết lập với mã cơ bản sau. Phạm vi ("C99999"). Kết thúc (xlUp), offset (1,0). Chọn vấn đề là tôi cần nút để biết mục nhập ô cuối cùng trong cả hai ô cột C và D và đặt bộ chọn vào hàng Cột C đó là hàng nhập cuối cùng cho một trong hai cột C hoặc D. Ví dụ sẽ có một số trong D10 nhưng không có số nào trong C10 khi tôi bắt đầu macro, nó cần đặt bộ chọn vào cột C11 mặc dù có một giá trị trống trong cột C10 vì có số trong D10? bất kỳ đề xuất?
William Aaron Winfrey

@WilliamAaronWinfrey - Bạn đang làm gì với tế bào đó? Đừng.Select như vậy. Là tế bào mà về cơ bản sẽ là $A$1? (Ô cuối cùng là ô mà BARSCAN của bạn đi đâu?)
BruceWayne

Đúng vậy
William Aaron Winfrey
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.