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.)
Blatt B
Die Formel in A3
ist
=IFERROR(VLOOKUP($C3, 'Sheet A'!$A:$A,1,0),"Not in Book")
So sieht Blatt B aus, wenn die Formel fehlerhaft ist:
#N/A
oder so, oder die Formel hängt tatsächlich Ihre Excel-Datei auf und es friert ein?Worksheet_Change
oderWorksheet_Select
?Antworten:
Dieses Problem wird durch das Makro eine Platzierung Text - Wert in den
Date&Time Booked
Zellen, aber das Zahlenformat der Zellen einstellen , um entwederGeneral
oder ein benutzerdefiniertes Datumsformat (absichtlich oder nicht).Wenn Sie auf F2und dann Enterin der
Date&Time Booked
Zelle 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 ). IhreVLOOKUP()
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
NumberFormat
Eigenschaft derDate&Time Booked
Zellen 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.
quelle