ActiveCell.Value = Zeit vba ohne Sekunden

555
Jason

Ich habe ein "Arbeitszeittabelle" -Makro für Uhrzeitein- und -uhrzeiten, die Mitarbeiter bei der Arbeit verwenden können. Das Makro, das ich habe, ist folgendes:

ActiveCell.Value = Time ActiveCell.NumberFormat = "h:mm AM/PM" 

Es funktioniert gut und zeigt nur als "7:30 AM" als Beispiel an, aber im Bearbeitungsfeld gibt es Sekunden und dies kann die Verschiebungszeit bestimmen (Formel = IF (ODER (C2 = "", F2 = "" ), "", ((F2-C2) - (E2-D2)) * 24)) um eine Minute, wenn sich die Sekunden nicht aneinander reihen, aber wir zahlen keine Sekunden aus, nur Minuten. Gibt es eine Möglichkeit, das Makro zu ändern, bei dem nur Stunde und Minute erfasst werden. Formatierung korrigiert es nicht. Mir geht es gut, es gibt jedes Mal "7:30:00" zurück und nicht die tatsächlichen Sekunden. Vielen Dank!

0

2 Antworten auf die Frage

2
Scott Craner

Runden Sie auf die nächste Minute ab:

 ActiveCell.Value = Int(Time * 24 * 60) / (24 * 60) 

Oder

ActiveCell.Value = TimeSerial(Hour(Time),Minute(Time),0) 
0
Rajesh S

Sie können dies auch versuchen:

ActiveCell.Value = Format(range("D2"), "HH:MM") 

Beachten Sie, dass Cell D2die Formel berechnet, die Sie in der obigen Frage anzeigen.

Oder anstelle von ActiveCell können Sie auch die folgenden verwenden:

Selection.NumberFormat = "h:mm" Range("E327").NumberFormat = "hh:mm"