Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Problem mit Anführungszeichen beim Export in eine Textdatei

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Problem mit Anführungszeichen beim Export in eine Textdatei (13465 mal gelesen)
cc10
Mitglied


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 04. Nov. 2007 11:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 04. Nov. 2007 12:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

Hi,

Antwort zur 2. Frage: verwende ThisWorkbook.SaveCopyAs anstelle ThisWorkbook.SaveAs

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cc10
Mitglied


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 04. Nov. 2007 12:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hatte ich schon probiert- allderdings kann ich dann nicht angeben, dass er in ein Textformat speichern soll.Klappt also so nicht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 04. Nov. 2007 13:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

Hi,

du speicher-kopierst sie ja schon als .XML

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cc10
Mitglied


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 04. Nov. 2007 19:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

also wenn ich die

FileFormat:=xlText

weglasse, dann wird in der Outputdatei nichts sinnvolles ausgegeben.
Nur wenn ich die Anweisung mitreinbringe wird auch was das Worksheet ausgegegeben.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 04. Nov. 2007 19:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

Hi,

dann bliebe noch die Möglichkeit, sie als .TXT abzuspeichern und sie anschließend in .XML umzubenennen.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cc10
Mitglied


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 04. Nov. 2007 20:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 05. Nov. 2007 05:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

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.



Sehen Sie sich das Profil von Oberli Mike an!   Senden Sie eine Private Message an Oberli Mike  Schreiben Sie einen Gästebucheintrag für Oberli Mike

Beiträge: 3728
Registriert: 29.09.2004

Excel 2010
128GB SSD
Windows 7

erstellt am: 05. Nov. 2007 07:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 05. Nov. 2007 09:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 05. Nov. 2007 09:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 05. Nov. 2007 09:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ja klar die Idee ist gut mit Suchen und Ersetzen. Allerdings soll dies automatisiert sein.
Gibt es da eine Möglichkeitb in VBA in Excel?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

runkelruebe
Moderator
Straßen- / Tiefbau




Sehen Sie sich das Profil von runkelruebe an!   Senden Sie eine Private Message an runkelruebe  Schreiben Sie einen Gästebucheintrag für runkelruebe

Beiträge: 8075
Registriert: 09.03.2006

MS-Office 365 ProPlus x86
WIN7(x64)

erstellt am: 05. Nov. 2007 10:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 05. Nov. 2007 12:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 05. Nov. 2007 12:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für cc10 10 Unities + Antwort hilfreich

und wenn du anstelle Write #2 Print #2 verwenden würdest?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cc10
Mitglied


Sehen Sie sich das Profil von cc10 an!   Senden Sie eine Private Message an cc10  Schreiben Sie einen Gästebucheintrag für cc10

Beiträge: 8
Registriert: 04.11.2007

erstellt am: 05. Nov. 2007 14:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz