2010-12-09 17 views
0

Sehr einfach und sehr ärgerlich, ich habe gesucht Lösung für viele Stunden ohne Hilfe ...Excel VBA Zeitformat als Dezimalzahl mit Combobox

Problem: Ich Combobox aus benannten Bereich bin bevölkern, Bereich Liste der (formatiert mal wie die Zeit :-), Combo scheint in Ordnung, Drop-Down meine Zeiten zeigt, wie sie sein sollte, aber wenn gewählte Zeit wird als Dezimalzahl formatiert ...

alt text

Hier ist der Code (auf das Minimum gerissen):

Private Sub UserForm_Initialize() 
    ComboBoxTime.RowSource = "Help!Time" 
End Sub 

„Hilfe“ ist der Name des Arbeitsblatt enthält benannten Bereich „Time“ Ich habe versucht, verschiedene Möglichkeiten, ohne Glück Formatierung ...

ComboBoxTime = Format(ComboBoxTime, "hhmm") 

Hier Link zu probieren. http://www.equstom.fi/dateproblem.html

(Und ja ich von benannten Bereich füllen muß, anstatt für jede Schleife, und ich werde mit Code, vollständiges Dokument gesetzt .value ist eigentlich recht komplex, aber ich enthalten nur das Problem Teil ...)

+0

Ihr Link http://www.equstom.fi/dateproblem.html ist defekt –

+0

Sorry, hier ist es http://www.equstom.fi/dateproblem.xlsm –

Antwort

0

Das Problem ist benannt Bereich, den ich verwende, wenn Werte als Zeit formatiert werden, wird es nicht funktionieren. Ich habe es funktioniert, wenn Werte Text waren! Das Problem hat etwas damit zu tun, dass Excel in Finnisch und VBA in Englisch ist ... Ich habe eine zweite Spalte neben dem Bereich hinzugefügt, die Textwerte in diesen zweiten Bereich kopiert, der als Zeit formatiert ist. Schnell und dreckig! (Danke für Ihre Eingabe Belisarius)

2

versuchen, etwas wie folgt aus:

Private Sub ComboBox1_Change() 
With ComboBox1 
    .Value = Format(.Value, "hh:mm:ss AMPM") 

End With 
End Sub 

HTH!

Bearbeiten Dies ist, was ich sehe, wenn Sie Ihre Combo verlassen. Die Zeitanzeige funktioniert OK.

alt text

Edit 2

den Fehler "ungültige Eigenschaft" Gefunden:

Sie müssen "Match requiered" auf FALSCH im Kombinationsfeld gesetzt. Wenn Sie der Meinung sind, dass es "TRUE" sein sollte, müssen Sie es von Hand validieren ...

+0

nicht Arbeit ... Und der -Wert sollte mit UserForm_Initialize nicht mit Änderung formatiert werden ... –

+0

@Mika Works in meinem Rechner ... Es muss mit Änderung formatiert werden. Initialisieren formatiert nur die Liste, nicht die obere Box –

+0

@Mika Scheint, dass Ihr WS ein Problem mit den Bibliotheksreferenzen hat. Die Standard VBA ** Format ** Funktion ** funktioniert nicht ** in Ihrem WS !! –