Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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

Sonderzeichen via Function eliminieren

Sonderzeichen via Function eliminieren
Andreas
Hallo Herber Fans,
ich suche nach einer Möglichkeit Sonderzeichen, bzw. Zeichen, die störend sein können (z.B. „?“ in einer Namensdefinition) zu löschen. Ich habe mir, bzw. wollte mir… eine Function schreiben, die von jedem Code aufgerufen werden kann. Beim Aufruf wird der String mitgegeben der gesäubert werden soll und dieser steht nach Function Durchlauf in der aufrufenden Prozedur zur Verfügung. Und genau daran scheitere ich gerade… Es ist vermutlich nur ein marginaler Fehler, aber ich komme nicht drauf. Ich habe mit Functions auch nicht so viel Erfahrung und die VBA Hilfe bringt in meinem Kopfknoten keinen Durchbruch.
https://www.herber.de/bbs/user/71590.xls
Modul1, Prozedur „SonderzeichenTest“ startet den Aufruf.
Ich würde mich freuen, wenn sich jemand das einmal ansehen könnte.
Vielen Dank und Grüße,
Andreas Hanisch

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Sonderzeichen via Function eliminieren
17.09.2010 20:14:58
Hajo_Zi
Hallo Andreas,
Option Explicit
Sub SonderzeichenTest()
Dim strTEST As String
strTEST = "hund,katze:maus\igel/nashorn?marder"
Debug.Print "1:"; strTEST
strTEST = fncSpecialCharacterElimination(strTEST, "")
'Debug.Print "Ende :"; WorksheetFunction.Clean(strTEST)         'Clean bringt in diesem  _
Kontext leider nichts
Debug.Print "3:"; strTEST
End Sub
Public Function fncSpecialCharacterElimination(strString As String, strReplace As String)
Dim arrSpecialCharacters() 'As String
Dim i As Long
arrSpecialCharacters = Array(",", ":", "\", "/", "?", "*", "[", "]", " ")
For i = 0 To UBound(arrSpecialCharacters)
strString = Application.Substitute(strString, arrSpecialCharacters(i), strReplace)
Next i
fncSpecialCharacterElimination = strString
Debug.Print "2:"; strString
End Function

Anzeige
AW: Sonderzeichen via Function eliminieren
17.09.2010 20:16:47
JogyB
Hallo Andreas,
das sollte Dir weiterhelfen, habe ich mal für Dateinamen gebastelt:
' Entfernt ungültige Zeichen aus einem Dateinamen - ohne Pfad
' Wenn komplett ungültig, dann wird leerer String zurückgegeben
Function repBadFileChars(ByVal daTei As String) As String
Dim regEx As Object
Set regEx = CreateObject("Vbscript.Regexp")
' Ersetzen der ungültigen Zeichen durch Leerzeichen
With regEx
.IgnoreCase = True
' Suchmuster
.Pattern = "[?"":|\/*]"
.Global = True
daTei = .Replace(daTei, " ")
End With
' Leerzeichen an Anfang und Ende entfernen
' können ja hierbei entstehen
daTei = Trim(daTei)
End Function

Hier noch eine Anleitung für den Aufbau der regulären Ausdrücke:
http://www.activevb.de/rubriken/kolumne/kol_19/regexp.html
Gruß, Jogy
Anzeige
AW: Sonderzeichen via Function eliminieren
17.09.2010 20:40:24
Andreas
Hallo Hajo, hi JogyB,
wow! Das war schnell. Und es läuft alles! Erst habe ich mich noch geärgert, daß ich nicht selber auf die eine kleine Zeile gekommen bin, die HaJo eingefügt hat "fncSpecialCharacterElimination = strString", aber hätte ich die Frage im Forum nicht gestellt, dann hätte ich nicht die Anregung von JogyB gesehen über "CreateObject" zu gehen. Dieser Ansatz erscheint mir sehr interessant und werde noch weiter diesbezüglich lesen.
Vielen, vielen Dank Euch beiden. Habt ein tolles Wochenende.
Grüße, Andreas Hanisch

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige