per VBA in UTF-8 wandeln.
#11
Hallo Stefan,

nein, bei mir werden nicht alle gezeigt. Siehe mein EDIT. Ich habe nur gesehen, dass UTF-Zeichen, die nicht Bestandteil des ASCII/ANSI Bereichs sind, angezeigt werden. Habe dann später das Problem mit den fehlenden Texten gesehen und den Beitrag editiert.
Gruß
Michael
Antworten Top
#12
ja, musst Du wohl oder übel kürzen.
Dort findest Du z.B. eine UTF8-Tabelle, könntest nach den "doppelt langen" Zeichen schauen und damit eine Längenberechnung durchführen.

Ich habe im Anhang mal nur die deutschen Umlaute gezählt, das ergibt teilweise schon ca. 200 zusätzliche Zeichen. Bei anderen mit Strichen, wellen, Häkchen und was auch immer dürften es einige mehr sein.


.xlsx   S-Text_UTF-8-Länge.xlsx (Größe: 256,67 KB / Downloads: 3)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
... oki, Danke an alle.
Antworten Top
#14
... eins hätte ich noch. Wenn Du das mit einem Makro lösen darfst, dann z.B. für Dein Beispiel damit. Das könnte man variabel gestalten, z.B. die 18 anhand der letzten gefüllten Zeile usw.

Code:
Sub SaveStringAsUTF8()
    Dim arrData, arrString(1 To 18), iCnt1%, strData$, stream As Object
    'Schleife ueber 18 Zeilen
    For iCnt1 = 1 To 18
      'Spalten zu Array zusammenfassen
      arrData = Array(Cells(iCnt1, 1).Value, Cells(iCnt1, 2).Value, Cells(iCnt1, 3).Value)
      'Array mit 3B (Zeichen 59) zusammenfuegen
      arrString(iCnt1) = Join(arrData, Chr(59))
    'Ende Schleife ueber 18 Zeilen
    Next
    'Zeilen mit 0D0A (vbCrLf)zusammenfuegen
    strData = Join(arrString, vbCrLf)
    'ADODB - Stream setzen
    Set stream = CreateObject("ADODB.Stream")
    With stream
        .Type = 2 'Streamtyp Text
        .Charset = "utf-8" 'UTF-8
        .Open 'Datei oeffnen
        .WriteText strData 'Text zum schreiben
        ' Speichern, 2 fuer ueberschreiben, falls vorhanden
        .SaveToFile "C:\test\test_utf8_vba.txt", 2
        .Close 'Datei schleissen
    End With
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
M.m.n hast du eien suboptimale Struktur für die Daten.
Du solltest die Struktur anpassen un nicht Code verwenden zum beheben dieser Struktur.

Excel ist nicht 'designed' / geeeignet zum Speichern von viele Daten in einer Zelle.
Ein Arbeitsblatt enthält genug Zellen um Daten ordentlicht zu Speichern.
Schau mal


Angehängte Dateien
.xlsb   __Struktur statt Code.xlsb (Größe: 173,5 KB / Downloads: 1)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • schauan
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste