Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

[VBA] Funktion mit ByVal?

Huhu

Ich möchte die Quersumme einer Zelle - in diesem Beispiel ist es die Zelle D2 mit dem Wert 3 - ausgeben...

Habe das momentan so:

Private Sub CommandButton1_Click()

    Dim bytSumme As Byte

    bytSumme = Cells(2, 4)
    bytSumme = CByte(Quersumme(bytSumme))
    MsgBox bytSumme
End Sub
-----------------------------------------------------
Private Function Quersumme(ByVal bytSumme As String)

Dim bytZaehler As Byte

Quersumme = 0

For bytZaehler = 1 To Len(bytSumme)
    Quersumme = Quersumme + Val(Mid(bytSumme, bytZaehler, 1))
Next bytZaehler

End Function

Das klappt auch wunderbar... ABER... ich frage mich gerade warum das klappt... habe das nämlich durch Internetrecherche zusammengebastelt...  durch das Argument "ByVal" wird doch jediglich eine Kopie erstellt, und die Variable "BytSumme" gar nicht verändert/Übergeben... Müsste man nicht eig. "ByRef" benutzen?

Hab auch nicht wirklich was im Internet dazu gefunden, was mir weiterhilft - jediglich die Definitionen und die versteh ich anscheinend nicht ganz richtig

Das mit den Funktionen hab ich echt noch nicht raus :(


Übrigens: Ich bin was VBA und Programmierung an sich angeht noch ein totaler Anfänger... falls ich mich gerade "lächerlich" mache, weil ich sozusagen den Wald vor lauter Bäumen nicht sehe, so lasst Gnade walten :)

Antworten zu [VBA] Funktion mit ByVal?:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Funktionen in VBA haben immer einen Rückgabewert (im Gegensatz zu Prozeduren, die mit Sub statt Function definiert werden).
Wenn du also sowas schreibst wie

Dim x As Integer
x = Quersumme("12345")
weist du der Variable x den Rückgabewert deiner Funktion zu. In deinem Fall steckst du hier den Rückgabewert der Quersumme-Funktion direkt als Übergabewert in die Funktion CByte().
In VBA gibt es kein explizites "return" Statement wie in vielen anderen Sprachen. Stattdessen weist man den Rückgabewert einer speziellen "Variable" zu, die den selben Namen hat, wie die Funktion. In dem du also der Variable "Quersumme" einen Wert zuweist, bestimmst du den Rückgabewert deiner Funktion.

« Abstrakte KlassenVb.Taschenrechner programmieren ? verliere meinen Kopf. Kann mir jemand Helfen? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...