Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1172to1176
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit Function (Variablewert wird verändert)

Problem mit Function (Variablewert wird verändert)
Martin
Hallo liebe Excelfreunde,
ich habe sicherlich ein leicht zu beantwortende Frage: Warum wird die Variabel "Prüftext" verändert und was muss ich machen, damit diese Variable ihren alten Wert behält?
Viele Grüße
Martin

Option Explicit
Sub Test()
Dim Prüftext As String, PrüftextKorrektur As String
Prüftext = "Schärf"
PrüftextKorrektur = Sonderzeichen(Prüftext)
MsgBox "Vorher: " & Prüftext & Chr(13) & "Danach: " & Sonderzeichen(PrüftextKorrektur)
End Sub
Function Sonderzeichen(Bezeichnung As String) As String
Bezeichnung = Trim(LCase(Bezeichnung))
Bezeichnung = Replace(Bezeichnung, "é", "e")
Bezeichnung = Replace(Bezeichnung, "ß", "ss")
Bezeichnung = Replace(Bezeichnung, "ä", "ae")
Bezeichnung = Replace(Bezeichnung, "ö", "oe")
Bezeichnung = Replace(Bezeichnung, "ü", "ue")
Sonderzeichen = Bezeichnung
End Function

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
verweist und zugenäht
24.08.2010 11:15:57
EvilRik
Hallo Martin,
...
'PrüftextKorrektur = Sonderzeichen(Prüftext)
MsgBox "Vorher: " & Prüftext & Chr(13) & "Danach: " & Sonderzeichen(Prüftext)
...
Gruß Henrik
Ich will ja mit beiden Variablen weiterarbeiten...
24.08.2010 11:22:52
Martin
Hallo Henrik,
vielen Dank für deine Antwort. Ich arbeite mit einem ziemlich großen Makro und habe hier nur die "Problemstelle" gepostet, damit der Quellcode (bzw. mein Problem) übersichtlich bleibt.
Ich suche nach einer Lösung, in der die Variable "Prüftext" nach der Function ihren Wert unverändert behält. Ich verstehe noch nicht einmal den Grund für das "Phänomen", dass die Variable den neuen Wert zugewiesen bekommt.
Viele Grüße
Martin
Anzeige
SRY :) guckst du ByVal
24.08.2010 11:33:18
EvilRik

Sub Test()
Dim Prüftext As String, PrüftextKorrektur As String
Prüftext = "Schärf"
PrüftextKorrektur = Sonderzeichen(Prüftext)
MsgBox "Vorher: " & Prüftext & Chr(13) & "Danach: " & PrüftextKorrektur
Stop
End Sub
Function Sonderzeichen(ByVal Bezeichnung As String) As String
Bezeichnung = Trim(LCase(Bezeichnung))
Bezeichnung = Replace(Bezeichnung, "é", "e")
Bezeichnung = Replace(Bezeichnung, "ß", "ss")
Bezeichnung = Replace(Bezeichnung, "ä", "ae")
Bezeichnung = Replace(Bezeichnung, "ö", "oe")
Bezeichnung = Replace(Bezeichnung, "ü", "ue")
Sonderzeichen = Bezeichnung
End Function

Henrik
Anzeige
AW: Problem mit Function (Variablewert wird verändert)
24.08.2010 11:33:46
JogyB
Hallo Martin,
Function Sonderzeichen(ByVal Bezeichnung As String) As String
Standard ist ByRef, d.h. es wird nicht der Wert, sondern tatsächlich die Variable übergeben (besser gesagt ein verweis auf diese) und dementsprechend auch verändert.
Gruß, Jogy
Vielen Dank, "ByVal" ist die Lösung
24.08.2010 11:39:17
Martin
Hallo EvilRik & JogyB,
super, genau danach habe ich gesucht.
Vielen lieben Dank!
Viele Grüße
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige