Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Variable aus PublicMethod mit Call beziehen.

VBA - Variable aus PublicMethod mit Call beziehen.
25.04.2013 14:19:29
Kai

Public Sub DetermineConclusionText(typeConclusion As String, arrow As String)
If arrow = "ì" And typeConclusion = "RentValue" Then
conclusionText = "seems appropriate"
End If
Return
End Sub

Private Sub button1_Click()
stringText = "ì"
stringType = "RentValue"
Call DetermineConclusionText(stringText, stringType)
MsgBox(conclusionText)
End Sub

Meine Frage ist, wieso mir in der MsgBox nicht "seems appropriate" ausgegeben wird? Wurde die Variable conclusionText nicht verfügbar gemacht durch den Call Befehl oder gibt es einen extra "übergabe" Befehl damit aus der Methoden-Variable ne globale Variable wird (eventuell public davor?)
Besten Dank für Antworten
Gruss Kai

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Variable aus PublicMethod mit Call beziehen.
25.04.2013 14:27:26
Klaus
Hi,
genau so, public deklarieren über den Subs.
public conclusionText as string
Public Sub DetermineConclusionText(typeConclusion As String, arrow As String)
If arrow = "ì" And typeConclusion = "RentValue" Then
conclusionText = "seems appropriate"
End If
Return
End Sub
Private Sub button1_Click()
stringText = "ì"
stringType = "RentValue"
Call DetermineConclusionText(stringText, stringType)
MsgBox(conclusionText)
conclusionText = ""
End Sub
Aber warum machst du das nicht mit einer Function? Das ist viel eleganter und du sparst es dir, irgendwelche Variablen in der Gegend rumzuschubsen:
Function DetermineConclusionText(typeConclusion As String, arrow As String) As String
If arrow = "?" And typeConclusion = "RentValue" Then
DetermineConclusionText = "seems appropriate"
End If
End Function
Private Sub button1_Click()
Dim stringText As String
Dim stringType As String
stringText = "?"
stringType = "RentValue"
MsgBox DetermineConclusionText(stringText, stringType)
End Sub
Übrigens, das Beispiel gibt eine leere MsgBox zurück weil du "StringText" und "stringType" vertauscht hast. Hab ich so gelassen.
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA - Variable aus PublicMethod mit Call beziehen.
25.04.2013 14:38:50
Kai
besten Dank für die Lösung.
Das Vertauschen hab ich leider erst "nach" Verfassen des Posts bemerkt. Das war zum Glück auch nicht das Problem. Die Public Deklaration funtioniert, danke.
Eine Frage noch im Anschluss bzgl Function und Method.
Wenn ich das richtig verstehe (und leider ist das bisher erst meine 2. eigene über Call aufgerufene Method):
Anwendung für eigene Method: Veränderungen im Excel
Anwendung für eigene Function: Ausgabe von Variablen
Kann man das so grob zusammenfassen oder warum manchmal eine Method und manchmal lieber eine Function?
Vielen Dank und Gruss, Kai

Anzeige
AW: VBA - Variable aus PublicMethod mit Call beziehen.
25.04.2013 15:02:58
Nepumuk
Hallo,
Sub und Function sind beides Methoden. Bei der einen bekommst du keinen direkten Rückgabewert bei der anderen schon. Beide sind aber grundsätzlich in der Lage geänderte Parameter zurückzugeben. Sie sind also situationsbedingt einzusetzen.
Gruß
Nepumuk

AW: VBA - Variable aus PublicMethod mit Call beziehen.
25.04.2013 15:24:12
Rudi
Hallo,
Public Sub DetermineConclusionText(ByVal typeConclusion As String, ByVal arrow As String, ByRef  _
conclusionText)
If arrow = "ì" And typeConclusion = "RentValue" Then
conclusionText = "seems appropriate"
End If
End Sub

Private Sub button1_Click()
stringText = "ì"
stringType = "RentValue"
DetermineConclusionText stringType, stringText, conclusionText
MsgBox conclusionText
End Sub

Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige