Clever-Excel-Forum

Normale Version: VBA Leerzeichen entfernen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Nachtrag

als Nachtrag noch ein kleines Programm mit dem man jeden Text auf seine ASCII Zeichen prüfen kann,
Alle Werte ab 128 bis 256 sind Sonderzeichen. Der normale ASCII Text liegt zwischen 32-127 (Dezimal)

Code:
'Programm zum anzeigen der ASCII Zeichen

Sub ASCII_Code_anzeigen()
Dim Txt As String, Bust As String, Zahl As Integer
Txt = ActiveCell.Value
For i = 1 To Len(Txt)
  Bust = Mid(Txt, i, 1)   'ein Buchstabe
  Zahl = Asc(Bust)        'ASCII Code (Dezimal)
  If Zahl = 32 Then Bust = "(Space)"
  If Zahl = 160 Then Bust = "(Sonder-Space)"
  MsgBox Bust & "  =  " & Zahl
Next i
End Sub
(21.12.2016, 12:27)89stephan89 schrieb: [ -> ]Call RPP

Hier bin ich! ;)
Zitat:Es wird ein Fehler angezeigt.
Welcher?

Eigenzitat:
Aber ich bat ja um aussagekräftige Beispiele. 

Möglichst in Form einer Datei mit ca. 20 Beispielen.

Gruß Ralf
Hallöchen,

bezogen auf die Frage würde ich das so lösen. Eventuelle Leerzeichen am Anfang oder Ende eines Zelleintrages werden übrigens nicht berücksichtigt und können daher zu Fehlern führen.

Code:
Sub text_concat()
'Variablendeklarationen
'Array
Dim arrColA 'Fuer Spalte A
'Long
Dim lCnt&
'Integer
Dim iLz
'Daten aus Spalte A in Array uebernehmen
arrColA = Range("A1", Cells(Rows.Count, 1).End(xlUp)).Value
'Schleife ueber alle Arayeinttraege
For lCnt = 1 To UBound(arrColA)
  'Position erstes Leerzeichen feststellen
  iLz = InStr(1, arrColA(lCnt, 1), " ")
  'Wenn Position groesser 0, dann
  'Hinweis: Eventuell pruefen, ob die Zeichenkette laenger ist
  'Leerzeichen kann ja auch am Ende stehen ..
  If iLz > 0 Then
    'Wenn der naechster Eintrag numerisch ist, dann
    'Hinweis: Buchstaben nach Zahl werden nicht beruecksichtigt!
    If Not IsNumeric(Mid$(arrColA(lCnt, 1), iLz + 1, 1)) Then
      'erstes Leerzeichen entfernen
      arrColA(lCnt, 1) = Replace(arrColA(lCnt, 1), " ", "", 1, 1)
    'Ende Wenn der naechster Eintrag numerisch ist, dann
    End If
  'Ende Wenn Position groesser 0, dann
  End If
'Ende Schleife ueber alle Arayeinttraege
Next
'Daten zurueckschreiben
Range("A1", Cells(Rows.Count, 1).End(xlUp)).Value = arrColA
End Sub
Seiten: 1 2