Zelle ohne Inhalt, trotzdem nicht LEER
#11
Hallo

die Null hat mich auch genarrt, vor allem weil sie NICHT sichtbar ist.  Dahinter kam ich mit einer Test MsgBox warum das so ist.
Es handelt sich um eine Hexzahl, die Hex 0, ein ASCII Steuerzeichen!  Die werden nicht geprintet, sind aber sehr wirksam.
Den Kollegen im Forum bekannt als vblf, LineFeed und Cr, Carrige Return, um nur 2 zu nennen. Oder EOF = EndOfLine.

Mit dem unteren Code, vorhin getestet, kann man sie löschen ohne Zahlen oder Texte zu löschen.  Bitte selbst testen.

mfg Gast 123

Code:
Sub Hex_Nullen_löschen()
Dim AC As Range, lz1 As Long
    lz1 = Cells(Rows.Count, 1).End(xlUp).Row
    For Each AC In Range("A1:A" & lz1)
        If Asc(AC) = 0 Then
           AC.Value = Empty
        End If
    Next AC
End Sub


Sub test()
'Test auf ASCII Steuerzeichen!!
MsgBox Asc(Left(ActiveCell, 1))
End Sub

Nachtrag  diese Steuerzeichen wurden als Standard entwickelt um Texte und Nachrichten versenden zu können.
List man z.B. Word Dateien mit einem Hex Editor aus, sieht man diese Steuerzeichen im Text als Zeilenumbruch etc.
EOF findet man auch in Codes um Dateien mit DOS Programmen von Festplatten auszulesen.  End of File.
Antworten Top
#12
Okay, danke euch. Das es so kompliziert ist, hätte ich nicht gedacht. Mit was kann ich sie denn abprüfen um zu testen ob dieser (nicht)leere Inhalt dort ist oder nicht? Leerzeichen und Nullen funktionieren nicht.
Antworten Top
#13
Hallo,

Zitat:Mit was kann ich sie denn abprüfen um zu testen ob dieser (nicht)leere Inhalt dort ist oder nicht? Leerzeichen und Nullen funktionieren nicht.

das hast du in deinem Posting #1 ja selbst beantwortet: =LÄNGE(A1)
Wenn diese Formel als Resultat 5 ergibt, sind in Zelle A1 tatsächlich auch 5 Zeichen (als String) enthalten. Wenn dort aber trotzdem keine Zeichen zu sehen sind, so sind das keine sichtbaren Zeichen: Davon gibt es im ASCII/ANSI/UNICODE eine ganze Menge.
Gruß Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#14
Hallo,

das ist ein sehr altes aus MS-Dos Zeiten stammendes Datenbankformat.
Wenn du dies in Excel einliest, wird es natürlich kein leere Zelle geben, weil vor jedem Feld (in Excel dann deine Zelle) der Feldtyp gesetzt ist.
Mit Notpad++ sollten diese Zeichen sichtbar sein.

Ansonsten Google fragen nach: dbase in excel konvertieren

Gruß Uwe
Antworten Top
#15
Hallo Tsamsiyu,

um mit solchen Feldern umzugehen, gibt es die zwei Funktionen Säubern() und Glätten(). Die Säubern() sorgt dafür, daß alle Steuerzeichen entfernt werden und Glätten() löscht alle unnötigen Leerzeichen.
Säubern() alleine sollte schon reichen.

Gruß
Knobbi38
[-] Folgende(r) 2 Nutzer sagen Danke an knobbi38 für diesen Beitrag:
  • Egon12, Tsamsiyu
Antworten Top
#16
Hallo

ich nehme an das dich diese Zeichen beim weiterverarbeiten erheblich stören.
Laß das Makro durchlaufen, z.B. per Button, dann sind alle weg.  Einfacher gehts nicht.

mfg Gast 123
Antworten Top


Gehe zu:


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