Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Byref, sonst Mehrfachdeklaration

Forumthread: Byref, sonst Mehrfachdeklaration

Byref, sonst Mehrfachdeklaration
16.06.2016 21:34:59
Max
Ich habe eine Sub geschrieben, die wenn ich den commandbutton drücke direkt die Daten vom Tabellenblatt als Variablen nehmen soll und anschließend eine Funktion ausführt und den berechneten Wert in eine Zelle schreibt. Nun stoße ich allerdings auf das Problem (zumindest vermute ich , dass dies das Problem ist), dass ich bei der Sub Variablen anspreche, die ich erst in der Funktion deklariere.
Auszugsweise aus VBA:

Private Sub CommandButton1_Click()
S = Sheets("TriDiv").Range("D8").Value
[und weitere Werte]
(...)
option_price = TrinomialPricer(S, K, t, rf, vol, n, CallPut, AmerEuro, divmat)
[hier taucht die Meldung auf "Argumenttyp byRef unverträglich"]
(...)
End Sub

Weiter unten kommt meine Funktion
Public Function TrinomialPricer(S As Double, K As Double, t As Double, rf As Double, _
vol As Double, n As Double, CallPut As String, AmerEuro As String, divmat As Variant) As  _
Variant
(...)
End Function
hier definiere ich erst die Variablen und nehme an, dass ebendies zu der Fehlermeldung führt. _
_
Falls ich nun in der Sub alle Variablen deklariere, habe ich Mehrfachdeklarationen und im Falle, _
dass ich in der Sub deklariere und in der Funktion nicht mehr, kam (zu meinem Erstaunen) auch eine Fehlermeldung, da an bestimmten Stellen in der Funktion wieder die "byRef"-Fehlermeldung kam.
Gibt es einen einfachen Weg das Problem der Mehrfachdeklaration/Nichtdeklaration zu umgehen? _
Die Struktur mit einer Sub, die meine Funktion anspricht, würde ich gerne beibehalten.
Falls der Fehler doch ganz wo anders liegen sollte, wäre ich natürlich auch um jeden Hinweis _
dankbar
Vielen Dank fürs Helfen.

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Byref, sonst Mehrfachdeklaration
16.06.2016 22:05:10
Planlos
Hallo
du hast 3 Möglichkeiten
1. in der schnittstelle deiner Funktion von byref (wird automatisch durch weglassen des Schlüsselwortes byref/byval angenommen) auf byval wechseln
2. Byval durch Klammerung der entsprechenden Variable beim Aufruf deiner Funktion erzwingen
und
3. was ich dir raten würde: Alle von dir verwendeten Variablen in ihrem richtigen Typ mittels "Dim" deklarieren. z.B in deiner "Sub ein Dim S as Double"
Was verstehst du unter einer Mehrfachdeklaration?

Anzeige
AW: Byref, sonst Mehrfachdeklaration
16.06.2016 22:28:14
Max
Ok, jetzt ging es doch. Ich dachte genau das (also oben Dim ...) hätte ich für alle gemacht und ein Fehler wäre auch da aufgetaucht, doch jetzt ging es scheinbar. Danke :)
;

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