variabelen Sub en Function tegelijk gebruiken

Status
Niet open voor verdere reacties.

deschrik

Gebruiker
Lid geworden
2 okt 2007
Berichten
122
Beste medeforummers,

Ik heb een VBA script met de SUB en een FUNCTION:
Private Sub KnopPlannen_Click()
Function BerekenenBezetting


Nu wou ik in de function gedeclareerde variabelen gebruiken die ik heb gedimd in de SUB. Dit mag echter niet en andersom ook niet. In SUB heb ik bijv. bewerking 1 gedefinierd. Deze heb ik echter ook nodig in mijn Function.

Nu is mijn vraag of het op een of andere manier mogelijk is om toch de SUB en function op de een of andere manier als een geheel te maken?
 
Dan moet je de variabelen niet declareren in de sub of in de functie, maar bovenin de module. Dan worden het variabelen die je in alle subs en functies kunt gebruiken.
 
Beste medeforummers,

Ik heb een VBA script met de SUB en een FUNCTION:
Private Sub KnopPlannen_Click()
Function BerekenenBezetting


Nu wou ik in de function gedeclareerde variabelen gebruiken die ik heb gedimd in de SUB. Dit mag echter niet en andersom ook niet. In SUB heb ik bijv. bewerking 1 gedefinierd. Deze heb ik echter ook nodig in mijn Function.

Nu is mijn vraag of het op een of andere manier mogelijk is om toch de SUB en function op de een of andere manier als een geheel te maken?

Je mag best vanuit een Sub(routine) een functie aanroepen en daarbij een variabele meegeven:
Code:
Sub BerekenKwadraat()
    Dim x As Single, y As Single

    x = InputBox("Geef een waarde op")
    y = Kwadraat(x)
    MsgBox "Het kwadraat van " & x & " = " & y
End Sub

Function Kwadraat(ByVal x As Single) As Single
    Kwadraat = x ^ 2
End Function

Je moet dus:
- of een variabele meegeven (heeft mijn voorkeur, zie boven)
- of een globale variabele definieren (zie onder):
Code:
Dim x As Single

Sub BerekenKwadraat()
    Dim y As Single

    x = InputBox("Geef een waarde op")
    y = Kwadraat()
    MsgBox "Het kwadraat van " & x & " = " & y
End Sub

Function Kwadraat() As Single
    Kwadraat = x ^ 2
End Function
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan