Frage zu einem kaputten Visual-Basic-Script in Excel für Windows

Moin.

Ich habe hier eine Excel-Tabelle mit folgendem Makro:

Show Plain Text
  1. Public Function WasDerBauerNichtFrisst(theValue As Range)
  2.     Dim returnVal As String
  3.     Dim theChar As Integer
  4.     Dim replacement As String
  5.     replacement = "_"
  6.  
  7.     returnVal = theValue.Text
  8.    
  9.     returnVal = Replace(returnVal, "€", "A")
  10.     returnVal = Replace(returnVal, "…", "O")
  11.     returnVal = Replace(returnVal, "†", "U")
  12.     returnVal = Replace(returnVal, "Š", "a")
  13.     returnVal = Replace(returnVal, "š", "o")
  14.     returnVal = Replace(returnVal, "Ÿ", "u")
  15.     returnVal = Replace(returnVal, "§", "s")
  16.     returnVal = Replace(returnVal, " ", "")
  17.    
  18.     For i = 1 To Len(returnVal)
  19.         theChar = AscW(Mid$(returnVal, i))
  20.                
  21.         ' A..Z a..z 0..9 &
  22.         If (theChar >= 65 And theChar <= 90) Or _
  23.                 (theChar >= 97 And theChar <= 122) Or _
  24.                 (theChar >= 48 And theChar <= 57) Or _
  25.                 (theChar = 38) Then
  26.             '' Frisst der Bauer
  27.         Else
  28.             '' Frisst er nicht
  29.             returnVal = Left(returnVal, i - 1) & replacement & Mid(returnVal, i + 1)
  30.         End If
  31.     Next i
  32.  
  33.     WasDerBauerNichtFrisst = returnVal
  34. End Function


Irgend etwas hat dieses Makro verändert. Denn ursprünglich enthielten die Anweisungen returnVal = Replace() nicht wie jetzt kryptische Sonderzeichen sondern sollten einfach nur die Umlaute durch Selbstlaute ohne Pünktchen ersetzen.

Warum ist das Skript kaputt?

Und wie muss ich vorgehen, damit das Skript wieder funktioniert?
----------
#ehrenamt #macht #freizeit #sinnvoll