tschieses
Goto Top

Pointer in VBA ?

Wie benutze ich Pointer in VBA?

Hi,

ich will von einer Funktion mehrere Werte zurückgeben, da das ja nicht geht und ich keine globalen Variablen benutzen will, brauche ich Pointer.

Kann mir vielleicht jemand erklären, wie ich diese Benutze/Dekrariere?


Ich will 4 Pointer an eine Funktion übergeben und dann logischer Weise auch verändern.


MfG

Tschieses

Content-ID: 73310

Url: https://administrator.de/forum/pointer-in-vba-73310.html

Ausgedruckt am: 23.12.2024 um 04:12 Uhr

MonsterX
MonsterX 12.11.2007 um 10:13:38 Uhr
Goto Top
Wenn die Werte alle vom gleichen Typ sind, dann benutz doch einfach ein Array...
miniversum
miniversum 12.11.2007 um 10:14:30 Uhr
Goto Top
Unter VB - und damit auch VBA - gibt es keine Pointer.
Du könntest ja einen String zurückgeben der die Werte enthällt die durch ein Trennzeichen getrennt sind. die Werte kannst du dann mit der split-Funktion wieder aus dem String herausholen.

miniversum
Tschieses
Tschieses 12.11.2007 um 13:33:17 Uhr
Goto Top
hab jetzt auch schon rausgefunden dass es keine pointer gibt....
Prob: es sind unterschiedliche datentypen...

habs jetzt aber gelöst... da ich die werte nur zurück in die hauptfunktion geben wollte um sie dort auszugeben (man soll ja nix in der funktion/prozedur ausgeben ;) ) hab ich sie jetzt doch in der unterfunktion ausgegeben....
naja was soll.....

hmmm man hätte ja auch aus der unterfunktion die hauptfunktion aufrufen können... -> endlosschleife ohne GoTo face-smile muauau

aber danke euch für die hilfe, jetzt wurde ich wiedermal bestätigt, dass VB/VBA der größte rotz is ;)

vielen dank euer
Tschieses
misterdemeanor
misterdemeanor 13.11.2007 um 15:44:40 Uhr
Goto Top
Grüß Dich,

nur mal so eine frage...jemals etwas von "ByRef" gehört?

Deklariere einfach die nötigen Variablen in der aufrufenden Methode und übergib Sie der Funktion (die Du entsprechend mit ByRef Argumenten deklarierst).

BG, Felix
Tschieses
Tschieses 13.11.2007 um 15:58:00 Uhr
Goto Top
Nee noch nie was von gehört und auch keine ahnung wie ichs benutz face-smile
werd mal danach suchen bei gelegenheit, aber habs jetzt sowieso anders gelöst...
Biber
Biber 13.11.2007 um 16:07:27 Uhr
Goto Top
Ich möchte den Beitrag auch ungern so schließen.

Ich habe jetzt auf eine (lieblose) Suchmaschinenbefragung nur einen Verweis auf VBA ByVal/ByRef gefunden hier in den wikibooks.

Vielleicht könnte noch jemand einen ähnlich schönen für VB/ .NET drunterhängen.

Danke
Biber
miniversum
miniversum 14.11.2007 um 11:00:48 Uhr
Goto Top
Ich hab hier mal ein kleines Beispiel getipselt. Ich denke es sollte zur Veranschaulichung reichen:
Sub byrefbyvaltest()
Dim a As Integer
a = 5
MsgBox "a vor refuebergabe: " & a  
Call refuebergabe(a)
MsgBox "a nach refuebergabe: " & a  

MsgBox "a vor valuebergabe: " & a  
Call valuebergabe(a)
MsgBox "a nach valuebergabe: " & a  
End Sub

Sub refuebergabe(ByRef b As Integer)
MsgBox "a in refuebergabe vor Veränderung: " & b  
b = 6
MsgBox "a in refuebergabe nach Veränderung: " & b  
End Sub

Sub valuebergabe(ByVal c As Integer)
MsgBox "a in valuebergabe vor Veränderung: " & c  
c = 7
MsgBox "a in valuebergabe vor Veränderung: " & c  
End Sub

Hier noch ein Link der helfen könnte:
http://vb-tec.de/byvalref.htm

miniversum
misterdemeanor
misterdemeanor 19.11.2007 um 16:39:06 Uhr
Goto Top
Grüß Dich /biber/,

natürlich willst Du die hohe Qualität des Forums waren, IMHO war der Link den Du gegeben hast schon wirklich Antwort genug und (z.B.) "ByRef" absolute Grundlage von VB (VBA, so gesehen auch VB .Net) das ja nach Meinung des/der Hilfe-suchenden "der größte Rotz" ist.

miniversum hatte auch nochmal ein kleines Beispiel sowie einen anderen Link zur Materie gegeben, so denke ich doch ist der Thread erledigt.

Gottseidank ist mir das "RTFM" an Tschieses nur unterschwellig rausgerutscht *lol
Biber
Biber 19.11.2007 um 16:51:55 Uhr
Goto Top
@miniversum, @misterdemeanor
so denke ich doch ist der Thread erledigt.

Hmmja, so ganz befriedigend finde ich das Feedback des ThreadOwners ja nicht, aber...

Ich schließe den Thread mal und auf "beantwortet" setze ich ihn auch.

Schönen Nachmittag Euch und danke
Biber