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-Key: 73310

Url: https://administrator.de/contentid/73310

Printed on: April 24, 2024 at 11:04 o'clock

Member: MonsterX
MonsterX Nov 12, 2007 at 09:13:38 (UTC)
Goto Top
Wenn die Werte alle vom gleichen Typ sind, dann benutz doch einfach ein Array...
Member: miniversum
miniversum Nov 12, 2007 at 09:14:30 (UTC)
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
Member: Tschieses
Tschieses Nov 12, 2007 at 12:33:17 (UTC)
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
Member: misterdemeanor
misterdemeanor Nov 13, 2007 at 14:44:40 (UTC)
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
Member: Tschieses
Tschieses Nov 13, 2007 at 14:58:00 (UTC)
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...
Member: Biber
Biber Nov 13, 2007 at 15:07:27 (UTC)
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
Member: miniversum
miniversum Nov 14, 2007 at 10:00:48 (UTC)
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
Member: misterdemeanor
misterdemeanor Nov 19, 2007 at 15:39:06 (UTC)
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
Member: Biber
Biber Nov 19, 2007 at 15:51:55 (UTC)
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