Problem :
Beim Kopieren einer Zelle aus Excel außerhalb des Programms werden doppelte Anführungszeichen automatisch hinzugefügt.
Details :
Ich verwende Excel 2007 auf einem Windows 7-Computer. Wenn ich eine Zelle mit der folgenden Formel habe:
="1"&CHAR(9)&"SOME NOTES FOR LINE 1."&CHAR(9)&"2"&CHAR(9)&"SOME NOTES FOR LINE 2."
Die Ausgabe in der Zelle (als Zahl formatiert) sieht in Excel folgendermaßen aus:
1SOME NOTES FOR LINE 1.2SOME NOTES FOR LINE 2.
Schön und gut. Wenn ich die Zelle jedoch in ein anderes Programm wie den Editor kopiere, werden am Anfang und am Ende nervige doppelte Anführungszeichen angezeigt. Beachten Sie, dass die von "CHAR (9)" erstellten Registerkarten beibehalten werden, was gut ist.
"1 SOME NOTES FOR LINE 1. 2 SOME NOTES FOR LINE 2."
Wie kann ich verhindern, dass diese doppelten Anführungszeichen angezeigt werden, wenn ich in ein anderes Programm kopiere? Mit anderen Worten, kann ich verhindern, dass diese automatisch hinzugefügt werden, wenn die Zelle in die Zwischenablage kopiert wird?
Antworten:
Wenn Sie versuchen, in Word-Pad, Notepad ++ oder Word einzufügen, tritt dieses Problem nicht auf. Um den Zellenwert als reinen Text zu kopieren und das zu erreichen, was Sie beschreiben, müssen Sie ein Makro verwenden:
Fügen Sie in der Arbeitsmappe, in der dies angewendet werden soll (oder in Ihrer Personal.xls, wenn Sie mehrere Arbeitsmappen verwenden möchten) den folgenden Code in ein Standardmodul ein:
Code:
Um Ihrem Projekt (Arbeitsmappe) ein Standardmodul hinzuzufügen, öffnen Sie die VBE mit Alt+, F11klicken Sie mit der rechten Maustaste auf Ihre Arbeitsmappe im oberen linken Projektfenster und wählen Sie Einfügen> Modul. Fügen Sie den Code in das Fenster des Codemoduls ein, das rechts geöffnet wird.
Gehen Sie in Excel zu Extras> Makro> Makros, wählen Sie das Makro "CopyCellContents" aus und wählen Sie dann im Dialogfeld "Optionen". Hier können Sie das Makro einer Tastenkombination zuweisen (zB wie CTRL+ Cfür normale Kopie) - ich habe CTRL+ verwendet Q.
Wenn Sie dann eine einzelne Zelle in Notepad / wo auch immer kopieren möchten, drücken Sie einfach Strg + q (oder was auch immer Sie ausgewählt haben) und dann ein CTRL+ Voder Bearbeiten> Einfügen in das von Ihnen gewählte Ziel.
Meine Antwort wird (mit ein paar Ergänzungen) von hier kopiert
EDIT : (aus Kommentaren)
Wenn Sie die Microsoft Forms 2.0-Bibliothek nicht in der Referenzliste finden, können Sie es versuchen
C:\Windows\System32\FM20.dll
(32-Bit-Windows) (danke @JWhy)C:\Windows\SysWOW64\FM20.dll
(auf 64-Bit)quelle
Ich hatte gerade dieses Problem und das Umschließen jeder Zelle mit der
CLEAN
Funktion hat es für mich behoben.=CLEAN(
Dies sollte relativ einfach sein , indem Sie Ihre Zelle auswählen und dann den Rest der Spalte automatisch ausfüllen. Nachdem ich dies getan hatte, hatten Einfügungen in Notepad oder ein anderes Programm keine doppelten Anführungszeichen mehr.quelle
Fügen Sie es zuerst in Word ein, dann können Sie es in den Editor einfügen, und es wird ohne Anführungszeichen angezeigt
quelle
Wenn Sie mehrere Zellen auswählen und deren Werte ohne all diese lästigen Anführungszeichen in die Zwischenablage kopieren möchten, kann der folgende Code hilfreich sein. Dies ist eine Erweiterung des oben angegebenen Codes von user3616725.
quelle
Meine Lösung, als ich auf das Anführungszeichenproblem stieß, bestand darin, Wagenrückläufe vom Ende des Textes meiner Zellen zu entfernen. Aufgrund dieser Wagenrückläufe (von einem externen Programm eingefügt) fügte Excel der gesamten Zeichenfolge Anführungszeichen hinzu.
quelle
Mögliches Problem in Bezug auf die Antwort von "user3616725": Ich bin
unter Windows 8.1 und es scheint ein Problem mit dem verknüpften VBA-Code von der akzeptierten Antwort von "user3616725" zu geben:
Details:
Wenn Sie den obigen Code ausführen und die Zwischenablage in eine Zelle in Excel einfügen, werden zwei Symbole angezeigt, die aus Quadraten mit einem Fragezeichen bestehen: ⍰⍰. Das Einfügen in Notepad zeigt nicht einmal etwas an.
Lösung:
Nachdem ich einige Zeit gesucht hatte, fand ich ein anderes VBA-Skript vom Benutzer "Nepumuk", das die Windows-API verwendet . Hier ist sein Code, der endlich für mich funktioniert hat:
Um es wie den ersten VBA-Code von oben zu verwenden, ändern Sie das Sub "Beispiel ()" von:
Zu:
Und führen Sie es über das Excel-Makro-Menü aus, wie von "user3616725" aus der akzeptierten Antwort vorgeschlagen:
Edit (21. November 2015):
@ Kommentar von "dotctor":
Nein, das ist ernsthaft keine neue Frage! Meiner Meinung nach ist dies eine gute Ergänzung für die akzeptierte Antwort, da meine Antwort Probleme behebt, die auftreten können, wenn Sie den Code aus der akzeptierten Antwort verwenden. Wenn ich mehr Ruf hätte, hätte ich einen Kommentar erstellt.
@ Kommentar von "Teepeemm":
Ja, Sie haben Recht, Antworten, die mit dem Titel "Problem:" beginnen, sind irreführend. Geändert zu: "Mögliches Problem in Bezug auf die Antwort von" user3616725 ":". Als Kommentar hätte ich sicherlich viel kompakter geschrieben.
quelle
"Wenn Sie mehrere Zellen auswählen und ihre Werte ohne all diese lästigen Anführungszeichen in die Zwischenablage kopieren möchten " ( ohne die Fehler in Peter Smallwoods Multi-Cells-Lösung) ", kann der folgende Code nützlich sein." Dies ist eine Erweiterung des oben angegebenen Codes von Peter Smallwood (was "eine Erweiterung des oben angegebenen Codes von user3616725" ist). Dies behebt die folgenden Fehler in der Lösung von Peter Smallwood:
HINWEIS: Sie können immer noch keine in eine Zelle eingebetteten Zeichen kopieren, die zu einem Verlassen des Zielfelds führen würden, in das Sie diese Zelle einfügen (dh Tab oder CR beim Einfügen in das Fenster "Tabelle bearbeiten" von Access oder SSMS).
quelle
Ersetzen Sie diese Zeile im Makro, um Zeilenumbrüche beim Einfügen in den Editor beizubehalten:
durch:
quelle
Bitte verwenden Sie die folgende Formel
und du wirst bekommen was du willst ;-)
quelle
Sie können dies in einem Excel-Makro über VBA tun und die Ergebnisse an eine Datei senden:
Wenn Sie Dateinamen und Inhalte in mehrere Dateien übertragen möchten, finden Sie hier einen kurzen Ausschnitt, mit dem doppelte Anführungszeichen um die Ausgabe vermieden werden.
quelle
quelle
Hinweis: Die Ursache für die Anführungszeichen ist, dass Daten, wenn sie von Excel in die Zwischenablage verschoben werden, vollständig den CSV-Standards entsprechen, die Anführungszeichen enthalten, die Tabulatoren, neue Zeilen usw. enthalten (und doppelte Anführungszeichen durch zwei doppelte Anführungszeichen ersetzt werden).
Ein anderer Ansatz, insbesondere wie im Fall von OP, wenn Tabulatoren / neue Zeilen auf die Formel zurückzuführen sind, besteht darin, alternative Zeichen für Tabulatoren und harte Rückgaben zu verwenden. Ich verwende ascii Unit Separator = char (31) für Registerkarten und ascii Record Separator = char (30) für neue Zeilen.
Das Einfügen in den Texteditor beinhaltet dann keine zusätzlichen CSV-Regeln, und Sie können schnell suchen und ersetzen, um sie wieder zurück zu konvertieren.
Wenn die Registerkarten / neuen Zeilen in die Daten eingebettet sind, können Sie sie in Excel suchen und ersetzen, um sie zu konvertieren.
Unabhängig davon, ob Sie eine Formel verwenden oder die Daten ändern, besteht der Schlüssel zur Auswahl von Trennzeichen darin, niemals Zeichen zu verwenden, die in den tatsächlichen Daten enthalten sein können. Aus diesem Grund empfehle ich die niedrigen ASCII-Zeichen.
quelle
Sie können diese doppelten Anführungszeichen auch entfernen, indem Sie Ihr Ergebnis auf die Funktion "Bereinigen" setzen.
Beispiel:
Die Ausgabe wird ohne doppelte Anführungszeichen in andere Programme wie Notepad ++ eingefügt.
quelle