Seltsames VLOOKUP-Problem in einem makroschweren Arbeitsblatt


0

Ich habe ein ziemlich seltsames Problem mit einer von mir erstellten Arbeitsmappe, die sehr makroabhängig ist. Es dreht sich um eine einfache VLOOKUP().

Derzeit erstellt mein Makro eine Werbebuchung auf einem Blatt (Blatt A) und kopiert diese Werbebuchung dann auf ein anderes Blatt (Blatt B). Nachdem diese Werbebuchung kopiert wurde, verwende ich eine VLOOKUP()Funktion in Blatt B, um das Datum und die Uhrzeit der Werbebuchung in Blatt A nachzuschlagen und zu bestätigen, dass sie sich noch in der Arbeitsmappe befindet.

Normalerweise funktioniert das ganze Szenario gut. Sie VLOOKUP()können die eindeutige ID in Blatt B eindeutig finden und auf Blatt A zurückverfolgen.

Das Problem, das ich habe, ist, dass, wenn jemand die Zelle betritt (mit einem F2Doppelklick auf die Zelle usw.), die das Datum und die Uhrzeit in Blatt B enthält, die VLOOKUP()Funktion fehlschlägt. Dies wird behoben, indem F2in Blatt A die Zelle Datum und Uhrzeit angeklickt wird.

Dies führt zu einer Vielzahl von Problemen, da ich ein Makro habe, das Werbebuchungen löscht, wenn sie fehlerhaft sind. Dieser vorübergehende Fehler löst also alles aus.

Ich habe versucht, passende Formate und was nicht, aber es scheint ein ziemlich einzigartiges und seltsames Problem zu sein.

Hat jemand dies zuvor angetroffen? Können Sie Fehlerbehebungen mitteilen?


Blatt A (Beachten Sie, dass Datum und Uhrzeit der Buchung eine eindeutige ID sind.)

Bildbeschreibung hier eingeben

Blatt B

Bildbeschreibung hier eingeben

Die Formel in A3ist

=IFERROR(VLOOKUP($C3, 'Sheet A'!$A:$A,1,0),"Not in Book")

So sieht Blatt B aus, wenn die Formel fehlerhaft ist:

Bildbeschreibung hier eingeben


1
Wenn Sie die Frage so bearbeiten , dass sie das kleinste Makro enthält, das das Problem reproduziert, können wir Ihnen möglicherweise helfen. Andernfalls ist Ihre Frage viel zu weit gefasst.
DavidPostill

"... die Vlookup-Fehler raus" - was meinst du? Es kommt zurück #N/Aoder so, oder die Formel hängt tatsächlich Ihre Excel-Datei auf und es friert ein?
BruceWayne

@BruceWayne Ich habe es mit Bildern bearbeitet, es wirft buchstäblich den Fehler "Nicht im Buch" auf, bis ich auf Blatt A in der Zelle "Datum & Uhrzeit gebucht" die Taste F2 drücke.
Dom176

@DavidPostill der Code ist eine Kombination aus einer Zielsyntax für Kopien und manuellen Füllungen, um bestimmte Werbebuchungen einzuschließen, die nur für Blatt B gelten. Dies geschieht nach Ausführung der Postleitzahl. Ich habe also Bilder hinzugefügt, bevor ich den Codeabschnitt verkleinere und diese einfüge.
Dom176

Haben Sie Makros, die durch Ereignisse auf einem Blatt ausgelöst werden, z. B. Worksheet_Changeoder Worksheet_Select?
PeterT

Antworten:


0

Dieses Problem wird durch das Makro eine Platzierung Text - Wert in den Date&Time BookedZellen, aber das Zahlenformat der Zellen einstellen , um entweder Generaloder ein benutzerdefiniertes Datumsformat (absichtlich oder nicht).

Wenn Sie auf F2und dann Enterin der Date&Time BookedZelle von Blatt B drücken , konvertiert Excel die Text-Datumszeit in eine serielle Datumszeit und passt das Zahlenformat an ein benutzerdefiniertes Datumsformat an (sodass es weiterhin gleich aussieht ). Ihre VLOOKUP()Funktion versucht nun, eine Text-Datumszeit mit einer seriellen Datumszeit (dh einer Zahl) zu vergleichen, sodass sie natürlich nicht übereinstimmen. Wenn Sie den Vorgang für die Zelle in Blatt A wiederholen, wird dieser Wert auch in eine serielle Datumszeit konvertiert, sodass die Übereinstimmung erneut erfolgreich ist.

Ohne Ihr Makro zu sehen und genau zu verstehen, wie Sie die gebuchten Datums- und Uhrzeitwerte später verwenden, ist es schwierig, eine konkrete Empfehlung zur Behebung des Problems abzugeben.

Die einfachste Lösung besteht darin, die NumberFormatEigenschaft der Date&Time BookedZellen auf @(Text) zu setzen.

Die andere Lösung besteht darin, das Makro so zu ändern, dass korrekte serielle Daten in die Arbeitsblätter geschrieben werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.