Klassisch geht das mit ByVal
Function TuWas (ByVal s As String) As String
s = ""
...
End Function
Alternativ kannst Du auch einfach die Variable in Ruhe lassen (so mache ich persönlich das, aber Geschmacksache)
Function TuWas (s As String) As String
Dim mein_s As String
mein_s = s
'Verbiege mein_s
...
End Function
Gleiches gilt natürlich auf für Subs.
Ich finde es gut, dass nur die Referenzen zurückgegeben werden, denn so kann man mit einer Function oder Sub bei Bedarf mehrere Variablen gleichzeitig ändern.