Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

FUNC SÄUBERN unter VBA einsetzten

Forumthread: FUNC SÄUBERN unter VBA einsetzten

FUNC SÄUBERN unter VBA einsetzten
02.12.2017 16:22:41
Siegfried
Hallo @alle,
wie ist die FUNC SÄUBERN in einem VBA Macro einzusetzen.
Finde dazu leider keine Hinweise, muss aber einige nicht druckbare Zeichen entfernen.
Um mir den doch etwas umständlichen Weg über/Innerhalb die/der Tabelle zu ersparen möchte ich es im Macro einbauen.
MfG Siegfried
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: FUNC SÄUBERN unter VBA einsetzten
02.12.2017 16:36:58
Hajo_Zi
Hallo Siegfried,
.UsedRange.Replace What:=":" & Chr(160) & "p", Replacement:=":P", lookat:=xlPart

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: FUNC SÄUBERN unter VBA einsetzten
02.12.2017 17:10:25
Siegfried
Hallo Hajo,
habe ich zu wenige VBA - Kenntnisse um das zu verstehen was du mir da geantwortet hast.
Habe aber inzwischen folgende Lösung gefunden, da ich ja jedes Wort bei WEB-Verwendung auf zu
ändernde Zeichen wie ", &, >, <> prüfen muss, habe ich mir dort
  • Zeichenkette = WorksheetFunction.clean(Zeichenkette)

  • dazu gegeben und damit geht es jetzt die TAB heraus zu bekommen.
    Anzeige
    AW: FUNC SÄUBERN unter VBA einsetzten
    02.12.2017 17:20:41
    Sepp
    Hallo Siegfried,
    das mach ich z.B. so.
    ' **********************************************************************
    ' Modul: Modul1 Typ: Allgemeines Modul
    ' **********************************************************************

    Option Explicit

    Sub test()
    Dim strTest As String

    strTest = "test" & Chr(160) & "text"
    Debug.Print strTest
    strTest = CleanTrim(strTest, True)
    Debug.Print strTest
    End Sub


    Function CleanTrim(ByVal S As String, Optional ConvertNonBreakingSpace As Boolean = True) As String
    '©by http://www.excelfox.com/forum/showthread.php/155-Trim-all-Cells-in-a-Worksheet-VBA#post1092
    Dim X As Long, CodesToClean As Variant
    CodesToClean = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, _
      21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127, 129, 141, 143, 144, 157)
    If ConvertNonBreakingSpace Then S = Replace(S, Chr(160), " ")
    For X = LBound(CodesToClean) To UBound(CodesToClean)
      If InStr(S, Chr(CodesToClean(X))) Then S = Replace(S, Chr(CodesToClean(X)), "")
    Next
    CleanTrim = WorksheetFunction.Trim(S)
    End Function

    Gruß Sepp

    Anzeige
    AW: FUNC SÄUBERN unter VBA einsetzten
    02.12.2017 20:55:14
    Daniel
    Hi
    Du kannst die meisten Excelfunktionen auch direkt in VBA einsetzen mit WorksheetFunction.englischer Funktionsname()
    Wenn du den englischen Funktionsnamen nicht weißt, kannst du die Funktion als Formel in eine Zelle schreiben und dir im Direktfenster mit ?Selection.Formula die englische Formel anzeigen lassen.
    Gruß Daniel
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige

    Infobox / Tutorial

    FUNC SÄUBERN unter VBA einsetzen


    Schritt-für-Schritt-Anleitung

    Um die Funktion SÄUBERN (oder CLEAN im Englischen) in einem VBA-Makro zu verwenden, kannst du die folgenden Schritte befolgen:

    1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

    2. Wähle im Menü Einfügen die Option Modul, um ein neues Modul zu erstellen.

    3. Füge den folgenden Code in das Modul ein:

      Sub CleanData()
         Dim myString As String
         myString = "Beispiel" & Chr(160) & "Text mit nicht druckbaren Zeichen"
         myString = WorksheetFunction.Clean(myString)
         Debug.Print myString ' Gibt das gesäuberte Ergebnis im Direktfenster aus
      End Sub
    4. Führe das Makro aus, um die nicht druckbaren Zeichen zu entfernen.

    Mit diesem einfachen excel vba clean Beispiel kannst du schnell nicht druckbare Zeichen aus deinen Daten entfernen.


    Häufige Fehler und Lösungen

    • Fehler: "Typkonflikt"

      • Lösung: Stelle sicher, dass die Variable, die du für den String verwendest, als String deklariert ist.
    • Fehler: WorksheetFunction.Clean funktioniert nicht

      • Lösung: Überprüfe, ob du die Funktion korrekt aufrufst. Sie sollte in der Form WorksheetFunction.Clean(deinString) verwendet werden.
    • Problem mit Chr(160)

      • Lösung: Chr(160) repräsentiert ein nicht druckbares Zeichen. Verwende die Methode Replace, um es in ein Leerzeichen zu ändern, wenn es notwendig ist.

    Alternative Methoden

    Wenn du nicht nur die SÄUBERN-Funktion verwenden möchtest, gibt es alternative Möglichkeiten, um unerwünschte Zeichen zu entfernen:

    1. Benutzerdefinierte Funktion: Du kannst eine eigene Funktion erstellen, um nicht druckbare Zeichen zu entfernen.

      Function RemoveNonPrintableChars(inputString As String) As String
         Dim i As Integer
         For i = 0 To 31
             inputString = Replace(inputString, Chr(i), "")
         Next i
         RemoveNonPrintableChars = inputString
      End Function
    2. Direkte Ersetzung: Du kannst direkt in der Excel-Tabelle mit der Suchen und Ersetzen-Funktion arbeiten, um nicht druckbare Zeichen zu entfernen.


    Praktische Beispiele

    Hier sind einige praktische Beispiele, wie du die SÄUBERN-Funktion im VBA verwenden kannst:

    • Säubern von Zellen in einem Arbeitsblatt:

      Sub CleanWorksheet()
         Dim ws As Worksheet
         Dim cell As Range
         Set ws = ThisWorkbook.Sheets("Tabelle1") ' Name des Arbeitsblattes
      
         For Each cell In ws.UsedRange
             If Not IsEmpty(cell.Value) Then
                 cell.Value = WorksheetFunction.Clean(cell.Value)
             End If
         Next cell
      End Sub
    • Säubern und gleichzeitig Umwandeln von Chr(160) in Leerzeichen:

      Function CleanAndTrim(inputString As String) As String
         inputString = Replace(inputString, Chr(160), " ")
         CleanAndTrim = WorksheetFunction.Clean(inputString)
      End Function

    Tipps für Profis

    • Nutze WorksheetFunction.Clean zusammen mit Trim, um sowohl nicht druckbare als auch unnötige Leerzeichen zu entfernen.
    • Implementiere Fehlerbehandlungsroutinen in deinen VBA-Skripten, um unerwartete Probleme bei der Ausführung zu vermeiden.
    • Halte deine Excel- und VBA-Versionen aktuell, um die neuesten Funktionen und Sicherheitsupdates zu nutzen.

    FAQ: Häufige Fragen

    1. Wie kann ich nicht druckbare Zeichen in Excel schnell entfernen?
    Du kannst die Funktion SÄUBERN (CLEAN) in einer Formel oder in VBA verwenden, um diese Zeichen zu entfernen.

    2. Was ist der Unterschied zwischen SÄUBERN und ENTFERNEN in Excel?
    SÄUBERN entfernt nicht druckbare Zeichen, während ENTFERNEN spezifische Zeichen nach deinen Vorgaben entfernt.

    3. Kann ich SÄUBERN auch direkt in einer Zelle verwenden?
    Ja, du kannst die SÄUBERN-Funktion direkt in einer Zelle verwenden, z.B. =SÄUBERN(A1).

    4. Wie gehe ich mit unsichtbaren Zeichen um?
    Unsichtbare Zeichen wie Chr(160) kannst du mit der Replace-Funktion in VBA oder mit Suchen und Ersetzen in Excel entfernen.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige