Moin Klaus,
Niemand (außer dich selbst und schlappe x1000 User) juckt so ein Text-alignment prefix character).
Größter Niemand ist Microsoft selbst, daher verstehen die das Problem nicht und haben eben so ab Version 2010 ein wenig am Application-Objekt geschraubt.
Damit sind auch hunderte "Lösungen" so nicht mehr brauchbar.
Einziges Workaround (hier Excel 2013) habe ich so gebastelt. Nur gehen eben alle Formatierungen der Zelle flöten, denn ohne "Clear" is nix! Und die TransitionNavigKeys deiner Applikation müssen ebenfalls ausgeschaltet werden.
LG hawediare
Option Explicit
Sub TestbyFormula()
Dim c As Range, cx As Range, str As String
Application.TransitionNavigKeys = False
Set c = Cells(Rows.Count, 1)
For Each cx In Selection.Cells
With cx
If .Value <> "" And .PrefixCharacter <> "" Then
'Säubern
c.Formula = Replace("=CLEAN(xx)", "xx", cx.Address(0, 0))
str = CStr(c.Value)
'Glätten
str = Trim(str)
.Clear
.NumberFormat = "@"
.Value = str
'*************************
'nur zum Test
If .PrefixCharacter <> "" Then MsgBox "hat Präfix"
'*************************
End If
End With
Next cx
c.Clear
End Sub
Sub TestbyFunction()
Dim cx As Range, str As String
Application.TransitionNavigKeys = False
For Each cx In Selection.Cells
With cx
If .Value <> "" And .PrefixCharacter <> "" Then
'Säubern
str = WorksheetFunction.Clean(.Text)
'Glätten
str = Trim(str)
.Clear
.NumberFormat = "@"
.Value = str
'*************************
'nur zum Test
Debug.Print .Address(0, 0)
'*************************
End If
End With
Next cx
End Sub
|