Der Bereich der char Codes 192..609 enthält insgesamt 221 char, die in ASCII darstellbare sind (dh aus diakritischen Zeichen umgewandelt werden):
A A A A A A Æ Ç Ee Ee I I I I dn o o o o o o ü ü ü ü Ý à â â â â â æ ç è é ê ë ì í î ï ñ ò ó ö ö ö ö ü ü ü ü ý ÿ â â â â A A C C C C C C C C-Dd dj dj Ee Ee Ee Ee Ee g g g g g g g g H H H H I I I I I I I I I I Jj Kk llll llll Nn Nn Nn o o o o o o Î œ Rr Rr Rr Ss Ss Ss Ss tT tT tT u u u u u u u u Ű ű Ų Ų Ŵ ŵ Ŷ Ŷ Ž ź ż ż ż Ž Ž Ư Ư Ư Ư Ư Ư Uz Ǎ ǎ Ǐ Ǐ ǒ ǒ Ǔ ǔ Ǖ ǖ Ǘ Ǘ Ǚ ǚ Ǜ ǜ Ǟ ǟ Ǥ ǥ Ǧ Ǧ ǩ ǩ ǫ ǫ Ǭ ǭ ǰ ɡ
Allgemeinen Sie ohne Hilfs Arbeitsblatt gehen kann, ein Wörterbuch Bestücken mit ersetzbar Zeichen on the fly, so etwas wie die folgenden Code:
Sub Test()
ReplaceDiacritics Selection
End Sub
Sub ReplaceDiacritics(oTargetRange As Range)
Static oDiaChars As Object
Dim i, j, sRange, sCured, sChar, aRes
If oDiaChars Is Nothing Then
Set oDiaChars = CreateObject("Scripting.Dictionary")
sRange = ""
For i = 192 To 609
sRange = sRange & ChrW(i)
Next
With CreateObject("ADODB.Stream")
.Type = 2
.Mode = 3
.Open
.Charset = "ascii"
.WriteText sRange
.Position = 0
sCured = .ReadText
.Close
End With
For i = 192 To 609
sChar = Mid(sCured, i - 191, 1)
If sChar <> "?" Then oDiaChars(ChrW(i)) = sChar
Next
End If
If oTargetRange.Cells.Count = 1 Then
sRange = oTargetRange.Value
For Each sChar In oDiaChars
sRange = Replace(sRange, sChar, oDiaChars(sChar))
Next
oTargetRange.Value = sRange
Else
aRes = oTargetRange.Value
For i = LBound(aRes, 1) To UBound(aRes, 1) ' rows
For j = LBound(aRes, 2) To UBound(aRes, 2) ' columns
For Each sChar In oDiaChars
aRes(i, j) = Replace(aRes(i, j), sChar, oDiaChars(sChar))
Next
Next
Next
oTargetRange.Value = aRes
End If
End Sub
Das Wörterbuch als statisch deklariert damit es nur auf den ersten Lauf ausgefüllt ist, ich den Code mit einer Auswahl von 1000 Zellen 3500 Zeichen Länge jeweils getestet, dauert es etwa 8 Sekunden für mich. Um das Hängenbleiben zu vermeiden, sollte man es besser wie ReplaceDiacritics ActiveSheet.UsedRange
, aber nicht ReplaceDiacritics Cells
nennen.
Teillösung : 'chartr ('şăîâ'," saia ", TestString)' aber zumindest für mich behandelt die R-Konsole nicht die ersten zwei Zeichen. – G5W
Können Sie die Datei in UTF-8 lesen und dann nicht den Buchstaben selbst, sondern seinen UTF-8-Code ersetzen (http://www.fileformat.info/info/charset/UTF-8/list.htm). –