Oprettet tir. d. 16. september 2008 kl. 22:13:43

henrypoulsen
henrypoulsen (11.360 point. Point ude: 0)

Excel 2007 VBA kode regner forker med Div operatoren

I en projektstyring har jeg en arbejdsopgave på 112 timer. Hver arbejdsdag er 7,40 timer. Med Div division (\)forventede jeg at få resultatet 15 hele arbejdsdage og resterende timer 1 ved Mod division (15 dage a' 7,40 timer = 111 timer + 1 time). Men...
Div division giver 16 og Mod division får jeg ikke til at vise decimaltal.
Ved nogle variabler (hours = 8, 20) bliver regnestykket med nedenstående kode rigtig.

  Dim hours, days As Integer
  Const arbt = 7.4
days = hours \ arbt
hours = hours - days * arbt (istedet for Mod-division).
Er der en af jer, der gennemskuer hvad jeg ikke forstår?
Hilsen Henry

Skrevet tir. d. 16. september 2008 kl. 23:44:39| #1

sjap
sjap (61.946 point)
Skyldes det at \ operatoren er til "heltalsdivision"? Dvs. den udfører ikke 112/7,4 men i stedet 112/7 (som faktisk giver 16!).

Du kan bruge Int-funktionen i stedet for:

    Int(112 / 7.4)

Skrevet ons. d. 24. september 2008 kl. 21:45:33| #2

henrypoulsen
henrypoulsen (11.360 point)
Hej Sjap
Når jeg ser i VBA hjælp, finder jeg følgende, som jeg ikke synes jeg kan bruge:
MyNumber = Int(99.8)    ' Returns 99.
MyNumber = Int(-99.8)    ' Returns -100.
MyNumber = Int(-99.2)    ' Returns -100.
Jeg har i stedet valgt at lade makro indsætte følgende formel i en tom celle:
"=FLOOR(RC[-1],1)" (runder altid ned til nærmeste heltal). Celleværdi læser jeg ind i en variabel til senere brug og makro sletter celleindhold. Det virker fint, men er lidt mere kringlet end jeg troede nødvendig.
Jeg lukke spørgsmålet om lidt, men tak for dit respons.
Hilsen Henry

Skrevet ons. d. 24. september 2008 kl. 21:47:59| #3

henrypoulsen
henrypoulsen (11.360 point)
Denne formel beregner det tal jeg skal bruge:
"=FLOOR(RC[-1],1)" (runder altid ned til nærmeste heltal).
Spørgsmålet lukkes.
Hilsen Henry

Skrevet tor. d. 25. september 2008 kl. 17:28:04| #4

sjap
sjap (61.946 point)
Int runder også altid ned til nærmeste heltal - ved positive tal. Så medmindre du også skal gennemføre beregningen for negative tal, så er mit forslag da brugbart.

Så vidt jeg lige husker, så kan Floor ikke anvendes, hvis kun det ene tal er negativt - men jeg kan huske forkert.

Når du så vælger at bruge regnearksfunktionen i stedet for VBA, så ville det være enklere at bruge Int (som jeg også mener er navnet på regnearksfunktionen - den hedder Heltal på dansk) - i hvert tilfælde når du alligevel vil afrunde til heltal.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Svar til: X i en celle giver et andet resultat i anden...

Oprettet den 11. februar 2012 kl. 14.15
ashurra giver 100 point for svar | Giv et svar »

Hjælp til formel rente/antal dage

Oprettet den 11. februar 2012 kl. 12.14
petert giver 30 point for svar | Giv et svar »

Problemløser, "HVIS" formel, eller andet til optimering?

Oprettet den 11. februar 2012 kl. 02.36
Olav123 giver 150 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger