Warum sollten alle Textspalten in einer Excel-Tabelle mit einem führenden einfachen Anführungszeichen beginnen?

Warum sollten alle Textspalten in einer Excel-Tabelle mit einem führenden einfachen Anführungszeichen beginnen?

Ich versuche, einige Daten, die uns in Excel zugesandt wurden, in eine Datenbank zu importieren. Excel verwende ich nur selten. In jeder Zelle, die einen Textwert enthält, erscheint ein einzelnes Anführungszeichen als Teil der Daten:

    'PUBLIC, JOHN Q.

Wenn ich in Excel auf die Zelle klicke, wird im Bearbeitungsfeld oben in der Tabelle rechts neben den Schaltflächen {X, Häkchen, Fx} ebenfalls ein einfaches Anführungszeichen angezeigt. Das führende Anführungszeichen wird also nicht von unserem Importdienstprogramm eingefügt. Es befindet sich in den Excel-Daten.

Es ist möglich, dass dieses Artefakt außerhalb von Excel erstellt wurde, aber wenn Sie das schon einmal gesehen haben und wissen, dass es von etwas herrührt, das sie in Excel tun, würde ich gerne wissen, was das ist, damit ich sie bitten kann, damit aufzuhören. Das Bereinigen dieser Daten wird wirklich zu einer großen Zeitverschwendung, da es viele dieser Blätter gibt und wir noch viele weitere bekommen werden.

Antwort1

Der Apostroph 'ist ein Sonderzeichen für Excel, wenn er als erstes Zeichen in einer Zelle erscheint. Er weist Excel an, den Rest der Zeichenfolge als Text zu behandeln.

Es kann wie folgt entfernt werden:

  • Auswählen der Zellen
  • Dann Menü Daten/ Text in Spalten

Sie können wahrscheinlich ein Makro schreiben, um dies zu automatisieren.

Alternativ können Sie die Daten nach CSV exportieren und die CSV-Datei anschließend in Ihre Datenbank importieren.

Antwort2

Boah, da wurde was in Excel 2013 geändert

Von Microsoft vorgeschlagene Methode zum Entfernen versteckter Apostrophefunktioniert in Excel 2013 nicht mehr. Ich bin ziemlich sicher, dass es in der vorherigen Version funktioniert hat.

Hier ist jedoch ein Workaround mit einemvorübergehendVariable

Sub removePrefix()
    For Each c In UsedRange
        If c.PrefixCharacter <> vbNullString Then
            temp = c.Text
            c.Clear
            c.Value = temp
        End If
    Next
End Sub

verwandte Informationen