2009-04-23 13 views
0

Ich versuche, eine Summe von ganzen Zahlen durch eine Summe von [h]: mm: ss zu teilen, um [s] zu erhalten. Ich mache das, was mir als diese wilde Verdrehung erscheint.Teilen Sie eine Ganzzahl durch eine Zeit mit VBA (Excel)

temp = Split(Format(Range("D" & rInx).Value, "hh:mm:ss"), ":", -1, vbTextCompare) 
answerDelay = CInt(temp(0)) * 3600 + CInt(temp(1)) * 60 + CInt(temp(2)) 

Weil mir dies ziemlich seltsam scheint dachte ich, ich würde es dort Gehirne für Sie löschte zu betrachten und sagen Sie mir einen besseren Weg, es zu tun.

Dies ist das Ende einer Formel auf einem Arbeitsblatt kurz wäre

range(B1)=838 
range(C1)=26:38:44 
range(D1)=range(C1)/range(B1) 

Die Antwort hierfür beträgt 109 Sekunden.

Es funktioniert wie ich es hier habe, ich bin einfach nicht zufrieden mit meiner Lösung.

Haben Sie eine bessere Lösung?

Vielen Dank im Voraus! Craig

Antwort

0

Sie können einen TimeSpan verwenden, um die Zeit in Sekunden zu konvertieren und anschließend zu verteilen.

I havn't getestet es aber ungefähr wie dies in C#:

var seconds = new TimeSpan(26, 38, 44).Seconds; 

Ist das, was Sie gemeint?

+0

Nein, es ist nicht, aber ich schätze Ihre rechtzeitige Antwort, ich benutze VBA nicht C++ – CABecker

+0

VBA hat eine DateDiff-Funktion, aber es gibt keine Entsprechung von TimeSpan, die in C# – Lunatik

+0

Sorry, ich habe nicht bemerkt, es war VBA und Excel. Ich öffne meine Augen jetzt :) – asgerhallas

3

Excel hält Zeiten als Bruchteile eines Tages, d. H. 24 Stunden = 1,0. Um in Sekunden zu konvertieren, multiplizieren Sie einfach mit 24 * 60 * 60.

+0

Mit anderen Worten, wenn Sie wollen, dass der Bereich D1 die Antwort in Sekunden ist, dann 'Bereich (d1) = Bereich (c1)/Bereich (b1) * 24 * 60 * 60 '. – mischab1

Verwandte Themen