2017-08-10 3 views
18

Momentan bin ich verwirrt. Ich wollte eine Antwort für this question erstellen.Range.Replace ist immer wahr für Chr (1)

Durch einige Tests laufen bemerkte ich, dass

ActiveSheet.Cells.Replace Chr(1), "", xlPart, , True, , False, False 

löscht vollständig das Blatt. Es macht Sinn für Chr(42) das ist * aber warum Chr(1)?

Kennt jemand den Grund? Ist es eine Art zweiter/versteckter Platzhalter?
(kann nicht etwas finden, aber verwendete wahrscheinlich nur die falschen Suchbegriffe)

+4

Interessant. Muss eine nicht dokumentierte Funktion sein. –

+0

Nur 1 Stunde ... aber es fühlt sich so an, als würde dies mit einem Kopfgeld enden ... auch '[A1] .value =" - "& Chr (1) &" - ​​"' sieht ziemlich seltsam aus: D –

+2

Das ist sehr interessant. Hier ist was ich gefunden habe. 'Chr (1)' bedeutet ein 'Start of Heading' und hier ist das Dokument (https://www.cs.tut.fi/~jkorpela/chars/c0.html) beschreibt alle ASCII-Steuerzeichen. Eine andere Website der Regierung (https://www.its.bldrdoc.gov/fs-1037/dir-034/_5089.htm) hat eine bessere "noch verwirrende" Erklärung für "Chr (1)". – ian0411

Antwort

0

ASCII 1 ‚SOH‘ (Start der Überschrift) und ASCII 2 ‚STX‘ das Ende des Headers gemeint, Beginn der Datenstrom. (Dadurch können Sie Adressen, Notizen oder was auch immer in einer Datei vor den eigentlichen Daten in der Datei verbergen.) Es sieht so aus, als ob Excel Ihren Befehl interpretiert, um am Anfang der Datei zu beginnen und alles einzubeziehen.