Just nu i M3-nätverket
Jump to content

Formel i Macro?


Vice Hövdingen

Recommended Posts

Vice Hövdingen

Hej!

 

Har en liten fråga (vet inte om detta är rätt forum...):

 

Jag har en excelfil där jag kör ett macro. Bland annat där man skriver in tid med decimaler. Tillexempel blir 8,55 klockan 08:55. Jag har även en formel som räknar ut tiden mellan exempelvis 8,55 och 9,30, och som genererar svaret i hela timmar.

 

=(HELTAL(D6)*60+(D6-HELTAL(D6))*100-HELTAL(D5)*60-(D5-HELTAL(D5))*100)/60

 

Nu skulle jag vilja lägga in denna formeln i mitt macro, istället för att skriva formeln i kalkylbladet. Syftet är att jag hämtar data från ett blad och skriver in i en databas.

 

En lösning är att när jag kör macrot skriver jag formeln i cellen, hämtar värdet och sen tar bort formeln igen. Men det känns inte som någon "snygg" lösning. Går det att göra på något annat sätt, att räkna direkt i mitt macro?

 

Tacksam för hjälp!

Link to comment
Share on other sites

Dim v1 As Double
Dim v2 As Double
v1 = Range("D6")
v2 = Range("D5")
Dim res As Double
res = (Int(v1) * 60 + (v1 - Int(v1)) * 100 - Int(v2) * 60 - (v2 - Int(v2)) * 100) / 60

 

där får res samma värde som din formel på bladet skulle ge.

Link to comment
Share on other sites

Vice Hövdingen

Lite intressant det här med formler i macron. Finns det någonstans där man kan läsa mer? Har några andra formler som jag gärna skulle vilja omvandla också, lite mer avancerade rolleyes.gif

 

 

Tack för hjälpen!

Link to comment
Share on other sites

VBA är ett programmeringsspråk, det får man allt se till att lära sig.

 

XLDennis är en gammal god favorit

http://xldennis.se/

men annars är Google en bra vän.

 

Bara ett litet visdomsord: Om något går att göra med en formel på ett blad är det att föredra 99 fall av hundra mot kod som gör samma sak i Excel.

 

Formler på arbetsbladet är alltid snabbare än motsvarande funktion i VBA-kod. Alltid.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...