[VBA] Hoe variablen opvragen uit een andere sub?

Pagina: 1
Acties:
  • 1.631 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 21:06

Hu9o

Schokkend

Topicstarter
Ik ben al een tijdje aan het kl*ten met VBA, maar het wil nog niet echt luken. Ik wil namelijk een variable (gemaakt in sub B) gebruiken in sub A. De opdracht om Sub B uit te voeren komt ook uit sub A. met welk commando kan ik dan weten wat de waarde van de variable is?

ik heb public sub B gebruik. maar dat is nog niet genoeg.

weet iemand het?

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Acties:
  • 0 Henk 'm!

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 21:06

Hu9o

Schokkend

Topicstarter
Kan niemand mij helpen?

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Acties:
  • 0 Henk 'm!

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 16:51

Crazy D

I think we should take a look.

Geduld... ;)

Een variabele die gedimt is in Sub A kun je niet direct gebruiken in Sub B. Er zijn een aantal mogelijkheden, het mooiste vind ik om Sub B een parameter mee te geven.
Bv
code:
1
2
3
4
5
6
7
8
Sub A()
    Dim blah As String
    blah = "iets"
    Call B(blah)
End Sub
Sub B(param As String)
    ' doe iets met param
End Sub

Exact expert nodig?


Acties:
  • 0 Henk 'm!

  • Stealthje
  • Registratie: Juli 2001
  • Laatst online: 09-08-2022

Stealthje

Me like Tux :)

Een andere optie is in je 'root' (kweet ff niet hoe ze dat noemen) neer te zetten:

Dim shared BLA()

dan kun je dit in iedere sub gebruiken, en zijn het dus algemene gegevens ...

Tux rulez man !


Acties:
  • 0 Henk 'm!

  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

Je kunt ook gewoon bovenaan de module een public variabele declareren:
code:
1
2
3
4
5
6
7
8
9
10
Public blah as String

Sub A()
    blah = "iets"
    Call B(blah)
End Sub

Sub B(param As String)
    ' doe iets met param
End Sub

edit: foutje

Acties:
  • 0 Henk 'm!

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 21:06

Hu9o

Schokkend

Topicstarter
Ok jongens, hardstikke bedankt.

Ik heb het opgelos met de Call B(waarde as Integer) optie.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 17-10 01:47

Gerco

Professional Newbie

Even voor de volledigheid: Je kunt ook een waarde returnen uit B, alleen heet B dan geen Sub meer.
code:
1
2
3
4
5
6
7
8
9
10
Public Sub A()
  ' blablabla
  somevar=B()
  MsgBox somevar
End Sub

Public Function B() as Integer
  ' Doe iets
  B=10
End Function

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 13-07 01:53

Korben

() => {};

Op vrijdag 14 september 2001 13:18 schreef Stealthje het volgende:
Een andere optie is in je 'root' (kweet ff niet hoe ze dat noemen) neer te zetten:

Dim shared BLA()

dan kun je dit in iedere sub gebruiken, en zijn het dus algemene gegevens ...
Zoiets noemen ze 'bij de declarations' (want het is een declaratie). En Dim Shared Bla() werkt wel, maar alleen voor die module. Als je em werkelijk overal in je geladen project(en) (!) wilt gebruiken, doe dan dit:
code:
1
Global Bla() As Integer ' integer, neem ik aan tenminste

En Public Sub zorgt ervoor dat je een sub vanaf overal kan aanroepen.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Acties:
  • 0 Henk 'm!

  • Coltrui
  • Registratie: Maart 2001
  • Niet online

Coltrui

iddqd

[foutje]

Acties:
  • 0 Henk 'm!

  • Pc123
  • Registratie: Oktober 2000
  • Laatst online: 20:53
Een variable gewoon Public maken.

Public x as ......

Acties:
  • 0 Henk 'm!

  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 17-10 12:02

johnwoo

3S-GTE

Als de beide functies in één module staan, kun je de variabele ook als Private declareren. Maar de ByRef-parameter methode is nog wel het mooist.

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1

Pagina: 1