Ja, det ser bedre ut.
En funksjon er en "sort boks" man sender deklarerede verdier inn i, og så
returnereer den en verdi tilbage av en type som også er defineret:
Function FortelMigHalvdelen(Hvilkettal As Long) As String
FortelMigHalvdelen = "Halvdelen er " & _
Hvilkettal / 2
End Function
mens en Sub utfører noget:
Sub Test()
MsgBox FortelMigHalvdelen(813)
End Sub
Hva hr Cronberg gør feil er å ikke deklarere -eller rettere, å deklarere
uten å spesifisere datatype. Dette er ret vanlig å lese i VB / VBA:
Dim a, b, c As Integer
så også i hans funktion. Men her er bare c "integer", a og b er "varianter".
Variant er meget store tunge datatyper som kan rumme alt fra et form eller
et computerprogram ned til et enkelt 0 eller1. Den korrekte og hurtige måte
er denne:
Dim a As Integer, b As Integer, c As Integer
eller overført til funksjonen:
Public Function BeregningAfRente(Saldo as Double, NomRente as Single, Dage
As Integer)
Dim Resultat er det samme som Dim Resultat As Variant -men forfatteren vet
godt at resultatet av hans egen funksjon er et tall, så Double bør være den
største type han tilordner: Dim Resultat As Double
Du tester funksjoner i immediate-vinduet sådan:
? FortelMigHalvdelen(300)
etterfulgt av Enter
HTH. Beste hilsen Harald
old <old.news@kandu.dk> skrev i
news:gx6h7.10509$3q.354323@news010.worldonline.dk...
> Kære Harald,Ove,Peter!
> I Grundlæggende Programmering af Michell Cronberg
> Option Explicit
> Public Function BeregningAfRente(Saldo,NomRente,Dage As Integer)
> BeregningAfRente=Saldo*NomRente*Dage/36000
> End Function
>
> Dim Resultat
> Resultat=BeregningAfRente(50000,12,50)
>
> Det er bogens ord og ikke mere.Selv prøver jeg så med i
> immediat(brugervinduet)
> Print BeregningAfRente(50000,12,50) og får ja jeg husker det ikke 833,33
>
> --
> Leveret af:
>
http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>