Avatar billede reginho Nybegynder
21. januar 2007 - 19:12 Der er 4 kommentarer og
1 løsning

Kan man blande VBA og excel funktioner i et?

Hej

Kan jeg godt lave vba kode, og samtidig bruge en funktion fra excel i koden?

Hvis så, er det muligt med en nemt lille eksempel?

Mvh
Regin
Avatar billede aidan Nybegynder
21. januar 2007 - 23:46 #1
Ja du kan bruge næsten alle Excels funktioner in din kode. Det kræver bare en simpel funktion. Fx er der ingen VB funktion som runder et tal opad. Det er der til gengæld i Excel (på engelsk ROUNDUP - jeg arbejder med engelsk Excel, ved ikke hvad det hedder på dansk. Dog virker de engelske funktioner og udtryk i alle sprog, så man kan sagtens bruge ROUNDUP i en dansk Excel).Se her:

Function RndUpToInt(ByVal myNumber As Double)
    RndUpToInt = Application.WorksheetFunction.RoundUp(myNumber, 0)
End Function

Function RndUpTo2Decs(ByVal myNumber As Double)
    RndUpTo2Decs = Application.WorksheetFunction.RoundUp(myNumber, 2)
End Function

Sub TestFunctions()

    Dim dblA, dblB, dblC As Double

    dblA = 93.1736
    dblB = 7.00000001
    dblC = 853.4999999

    With Sheets(1)
        .Cells(1, 1) = RndUpToInt(dblA)
        .Cells(1, 2) = RndUpTo2Decs(dblA)
        .Cells(2, 1) = RndUpToInt(dblB)
        .Cells(2, 2) = RndUpTo2Decs(dblB)
        .Cells(3, 1) = RndUpToInt(dblC)
        .Cells(3, 2) = RndUpTo2Decs(dblC)
    End With

End Sub
Avatar billede aidan Nybegynder
21. januar 2007 - 23:54 #2
Excel funktionen ROUNDUP tager 2 argumenter:

1. En variabel eller udtryk som repræsenterer det nummer (double) som det skal arbejde med.

2. Et tal, som fortæller hvor mange decimaler der skal være i resultatet.

Som du kan se med eksemplet, specielt med dblB, så runder det konsekvent opad.

Der er en liste i Excels VBA hjælp, som viser alle funktioner i Excel som er tilgængelige for VBA. Alle bruger (ihvertfæld på engelsk):

= Application.WorksheetFunction.NAVN PÅ FUNKTIONEN (ARGUMENTER)

Håber at du kan bruge det her!

;-) aidan
Avatar billede aidan Nybegynder
21. januar 2007 - 23:59 #3
Jeg mener at de fleste Excel funktioner skal have argumenter givet videre til dem så de ændrer værdien af variablen overalt (ikke kun den instans som de har modtaget). Derfor "ByVal" ved argumenterne - de kan ikke modtage dem "ByRef".
Avatar billede aidan Nybegynder
22. januar 2007 - 01:14 #4
Jeg har fundet denne link til en fin addin, som hjælper med oversættelse af engelsk funktioner:
http://www.soweb.be/cursussen/excel/MFtransl.xla
som kommer fra http://www.eksperten.dk/spm/757048
med mange tak til gibber for henvisning.
Avatar billede reginho Nybegynder
17. februar 2007 - 17:22 #5
Takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester