Gibt es eine Möglichkeit, Excel zu erhalten, um zwischen den Blättern zu wechseln, wenn Sie einen räumlichen Barcode scannen

383
William Aaron Winfrey

Ich arbeite für ein kleines Unternehmen und brauche Hilfe beim Aufbau unseres neuen Bestandsverwaltungssystems. Ich habe das Excel-Dokument vorbereitet und der Barcode-Scanner gibt die Barcodes direkt in die Zellen ein, aber ich habe ein Problem. Wir haben über 100 Teile, und jedes Teil hat ein bestimmtes Arbeitsblatt, das jeweils mit einer bestimmten Teilenummer versehen ist. Gibt es sowieso, dass ich ein Arbeitsblatt codieren kann, das sagt, 1234LOCK besagt, wenn ein Teilenummer-Barcode gescannt wird, dass Excel automatisch zu dem mit 1234LOCK beschrifteten Blatt wechselt?

0
Wie kann Excel das wissen, wenn der Barcode gescannt wird? Wenn Excel den Barcode nach dem Scannen in "Hauptblatt" und "A1" einfügt, können Sie ein "Workbook Change ()" - Ereignis erstellen, das dann zu dem Arbeitsblatt wechseln kann, auf das sich "A1" bezieht. Was hast du versucht? BruceWayne vor 6 Jahren 1
Beim Scannen eines Barcodes wird die Barcode-Information in den Block eingefügt, in dem sich der Cursor befindet. Ich habe nicht wirklich viel ausprobiert, da ich immer noch lerne. Um Ihre Aussage zu verdeutlichen, wenn Sie sagen, die Zelle A1 im Hauptblatt sagt 1234LOCK und ich scanne 1234LOCK, dann kann ich eine Arbeitsmappenänderung erstellen, die auf das Blatt 1234LOCK geht. William Aaron Winfrey vor 6 Jahren 0
Zur weiteren Klarstellung habe ich mit dem Einrichten eines Makros begonnen. Wenn ich auf einen Eintrag klickt, lauscht er auf eine Eingabe, und sobald er empfangen wurde, wird er auf dem Eingabeblatt angezeigt. Zum Beispiel Wenn ich auf die Auswahltaste klicke und in 1234LOCK scanne, wird das Blatt 1234LOCK aufgerufen William Aaron Winfrey vor 6 Jahren 0

1 Antwort auf die Frage

0
BruceWayne

Fügen Sie dies in das Arbeitsblattmodul des Arbeitsblatts ein 1234LOCK, in das Sie beim Scannen eines Barcodes eingefügt werden.

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 

Ich gehe davon aus, dass das Scannen eine Änderung des Arbeitsblatts auslöst, und der Name wird übernommen A1.

Das scheint mich in die richtige Richtung zu bringen. Es hat sicherlich einer Menge geholfen! William Aaron Winfrey vor 6 Jahren 0
Ich habe endlich alles richtig gemacht, ich habe eine letzte Frage. Ich habe ein Makro mit dem folgenden grundlegenden Code eingerichtet. Private Sub CommanButton2_click () Bereich ("C99999"). Ende (xlUp), Offset (1,0) .select William Aaron Winfrey vor 6 Jahren 0
Ich habe endlich alles richtig gemacht, ich habe eine letzte Frage. Ich habe ein Makro mit dem folgenden grundlegenden Code eingerichtet. Bereich ("C99999"). Ende (xlUp), offset (1,0). Wählen Sie das Problem aus, dass ich die Schaltfläche benötige, um den letzten Zelleneintrag in den C- und D-Spaltenzellen zu kennen und den Selektor in die Spalte C-Spalte zu setzen Dies ist die letzte Zeile des Eintrags für die Spalten C oder D. Das Beispiel wäre, dass es eine Zahl in D10 gibt, aber keine Nummer in C10. Wenn ich das Makro starte, muss es den Selektor in Spalte C11 platzieren, auch wenn ein leerer Wert in steht Spalte C10, weil es eine Nummer in D10 gibt? irgendwelche Vorschläge? William Aaron Winfrey vor 6 Jahren 0
@WilliamAaronWinfrey - Was machst du mit dieser Zelle? [Nicht ".Select"] (https://stackoverflow.com/questions/10714251/). Ist das die Zelle, die im Wesentlichen die $ A $ 1 sein wird? (Die letzte Zelle ist die, in die Ihr BARSCAN geht?) BruceWayne vor 6 Jahren 0
ja, das ist richtig William Aaron Winfrey vor 6 Jahren 0
@WilliamAaronWinfrey - Ich glaube, ich verstehe es? Siehe die Bearbeitung. Hilft das? BruceWayne vor 6 Jahren 0
Ich sehe, wohin Sie gehen, während dies für ein Arbeitsblatt funktionieren würde, ich brauche es nur für ein separates Makro. Wenn die Befehlsschaltfläche angeklickt wird, wird der Selektor an der ersten leeren Zelle in Spalte C platziert. Wenn Spalte D Werte in Zellen enthält, die weiter unten in der Liste stehen, wird der Selektor in Spalte C in der Zeile unter der letzten Spalte platziert D. Ich habe Werte in anderen Spalten, die die Länge des Arbeitsblatts ausdehnen, so dass ich spezifisch für Spalte C und D sein muss William Aaron Winfrey vor 6 Jahren 0
@ WilliamAaronWinfrey - Siehe meine Bearbeitung. BruceWayne vor 6 Jahren 0
(@WilliamAaronWinfrey - Wenn dies für Sie zutrifft und das Problem löst, können Sie den Beitrag als Antwort markieren, indem Sie auf das Häkchen links neben dem Beitrag unter den Aufwärts- / Abwärtspfeilen klicken.) BruceWayne vor 6 Jahren 0
@WilliamAaronWinfrey - Im Grunde habe ich eine 'If'-Anweisung hinzugefügt: Wenn die Zeilen in C und D die gleiche Länge haben, stellen Sie mit lastRow ein, was auch immer diese Zeile ist. Wenn sie nicht gleich sind, prüfen Sie, ob die Anzahl. von Zeilen in Spalte C ist kleiner als die in D. Wenn dies der Fall ist, setzen Sie lastZahl auf die Anzahl der Zeilen in Spalte D + 1. ** Hinweis ** Ich habe nichts für die Möglichkeit, dass Spalte C länger ist Spalte D - wäre das jemals der Fall? BruceWayne vor 6 Jahren 0