Autor
|
Thema: Problem mit Anführungszeichen beim Export in eine Textdatei (13465 mal gelesen)
|
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 04. Nov. 2007 11:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich habe folgendes Problem in Excel und VB. In einer Sub will ich mir beim Klick eines Buttons automatisch ein Worksheet des Excel Dokuments speichern lassen. Allerdings soll ich dieses Worksheet im Textformat abgespechert werden. Der Befehl für dieses Abspeichern hab ich so gelöst: code: ThisWorkbook.SaveAs Filename:="test.xml", FileFormat:=xlText Klappt alles auch soweit bis auf 2 Sachen die mich stören. Zum einen kommen im Excel Worksheet doppelte Anführungszeichen vor.z.B. "text" Das gespeicherte Textdokument macht aus irgend Grund doppelt diese Anführungszeichen noch einmal, z.B. so: ""text"".Weiß jemand warum , dies beim Abspeichern passiert. Zum andern stört noch, dass beim Abspeichern das gespeicherte Textdokument gleich automatisch in Excel geladen wird und das eigentliche Excel Dokument unter dem alten verschwindet. Wie kann ich errreichen, dass die Textdatei nur gespeichert wird? Danke im Voraus für eure Hilfe!
[Diese Nachricht wurde von cc10 am 04. Nov. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 04. Nov. 2007 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
|
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 04. Nov. 2007 12:19 <-- editieren / zitieren --> Unities abgeben:
|
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 04. Nov. 2007 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
|
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 04. Nov. 2007 19:06 <-- editieren / zitieren --> Unities abgeben:
|
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 04. Nov. 2007 19:14 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
|
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 04. Nov. 2007 20:52 <-- editieren / zitieren --> Unities abgeben:
Also das mit dem Abspeichern ist auch eher das kleinere Problem. Hat keiner eine Idee wie ich das Problem mit den Anführungszeichen lösen kann? Hier nochmal die Fragstellung von oben: Zum einen kommen im Excel Worksheet doppelte Anführungszeichen vor.z.B. "text" Das gespeicherte Textdokument doppelt aus irgend Grund diese Anführungszeichen noch einmal, z.B. so: ""text"".Weiß jemand warum , dies beim Abspeichern passiert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 05. Nov. 2007 05:11 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
kenne mich in dem Format xml nicht aus und mein xl mag das auch irgendwie nicht speichern;-) aber würde das auch gehen? Code: Sub saveastxt() Dim lngRow As Long Dim lngLastRow As Long Dim intColumn As Integer Dim strPfad As String Dim strName As String Dim strValue As String strPfad = "W:\" strName = "Textdatei.xml" Close Open strPfad & strName For Output As #1 With ActiveSheet lngLastRow = .Cells(Rows.Count, 1).End(xlUp).Row For lngRow = 1 To lngLastRow For intColumn = 1 To Range("a1").End(xlToRight).Column strValue = strValue & .Cells(lngRow, intColumn).Text & "; " Next Print #1, strValue strValue = "" Next lngRow End With Close End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing.
Beiträge: 3728 Registriert: 29.09.2004 Excel 2010 128GB SSD Windows 7
|
erstellt am: 05. Nov. 2007 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
Zu speichern kann ich nicht viel sagen. Wenn ich z.B. "text" aus Excel in ein txt File speichere erhalte ich """text""", was mir vom VBA bekannt vorkommt. Wenn man aus VBA "text" in einer Excel - Zelle erstellen will, muss man """text""" programmieren. Nur ein " wird nunmal zur Erkennung des Syntaxt verwendet. Ich schätze, dass da auch der Zusammenhang beim xlm speichern ist. Importiere ich das txt File wieder, erscheint in der Vorschau """text""". Beim Import dann kommt aber "text". Gruss Mike
------------------
The Power Of Dreams Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 05. Nov. 2007 09:11 <-- editieren / zitieren --> Unities abgeben:
Also soweit klappt das mit den Anführungszeichen immer noch nicht. Ist es in Excel über VBA möglich die XML Datei zu bearbeiten und die Anführungszeichen dann so einzufügen. Statt Anführungszeichen würde ich dann * mitgeben, und dann mittels eines Makro die * durch " ersetzen. Ist dies generell möglich und ja wie? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 05. Nov. 2007 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
Was hälst Du denn generell von Suchen und Ersetzen? Ob jetzt im VBA vorher oder im text-file nachher? die Aktion """ durch " ersetzen ist im fertigen .txt (nicht als .xml speichern, warum? ) dauert 2 Mausklicks. ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 05. Nov. 2007 09:57 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 05. Nov. 2007 10:10 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
ja, gibt es, guck mal nach der replace-Methode. Da ich aber immer noch nicht weiß, was Du am Ende wirklich haben willst, weiß ich auch nicht, wie Du das am geschicktesten einbaust. Bislang würde ich noch über die Editor-Variante gehen. Müssen die " um den Text denn wirklich sein? Wenn nicht, würde ich die evtl. im Excel schon komplett raushauen und ne txt ganz ohne " bekommen". Wie wäre es an dieser Stelle mal mit der Bsp.-Mappe? ;-) ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 05. Nov. 2007 12:28 <-- editieren / zitieren --> Unities abgeben:
Also ich habs mit der replace Methode probiert, ein * durch ein " zu ersetzen. Aber dann macht wieder 2 doppelte Anführungszeichen für ein * in die Textdatei. Der Quellcode war folgender: Sub ersetzen() Dim strZeile Open "Y:\PUBLIC\Lothar\T937\test.xml" For Input As #1 Open "Y:\PUBLIC\Lothar\T937\testneu.xml" For Output As #2 Do While Not EOF(1) Line Input #1, strZeile strZeile = Replace(strZeile, "*", Chr(34)) Write #2, strZeile Loop Close #1 ' Datei schließen. Close #2 End Sub Weiß jemand noch Rat? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 05. Nov. 2007 12:58 <-- editieren / zitieren --> Unities abgeben: Nur für cc10
|
cc10 Mitglied
Beiträge: 8 Registriert: 04.11.2007
|
erstellt am: 05. Nov. 2007 14:02 <-- editieren / zitieren --> Unities abgeben:
super das klappt. Vielen Dank auch Hätte jetzt nur noch das Problem, dass beim Abspeichern das gespeicherte Textdokument gleich automatisch in Excel geladen wird und das eigentliche Excel Dokument unter dem alten verschwindet. Wie kann ich errreichen, dass die Textdatei nur gespeichert wird? Mit SaveasCopy klappt es nicht, da ich dort das FileFormat nicht einstellen kann. Hat da jemand noch eine Lösung? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |