none
Aus der MSDN Hotline: Zelleninhalt in Excel 2010 in Textdatei schreiben (VBA) RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    heute wurde uns bei der MSDN Hotline unter anderem folgende Frage gestellt:
    Wie kann man den Inhalt von Zellen in Excel 2010 mit VBA (Visual Basic for Applications) in eine Textdatei schreiben?

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:
    Unter [1] findet man die Grundlagen zu VBA in Excel. Dort gibt es auch eine Beschreibung, wie man in Excel 2010 in den Makro-Editor kommt, um den VBA Code eingeben und ausführen zu können. In diesem Artikel wird auch beschrieben, wie mit Excel ein Makro aufgezeichnet werden kann (die Aktionen werden dabei von Excel in VBA Code aufgezeichnet). Dieser von Excel erzeugte VBA Code ist allgemein ein guter Anlaufpunkt, um sich anzuschauen wie etwas in VBA umgesetzt werden kann.

    Eine Textdatei kann man in VBA folgendermaßen erstellen:

    'Textdatei öffnen
    Open "C:\testdatei.txt" For Output As #1

    'eine Zeile in Datei schreiben
    record = "Test"
    Print #1, record

    'Textdatei schliessen
    Close #1

    Die Kommentare werden in VBA mit ' eingeleitet. Diese werden nicht ausgewertet und dienen z.B. der Beschreibung des Codes. Auf eine Zelle in Excel kann folgendermaßen zugegriffen werden: Cells(Zeile, Spalte)

    Also kann man auf die Zelle A1 z.B. mit Cells(1, 1) zugreifen. Wahrscheinlich werden Schleifen  (= um Anweisungen zu wiederholen) benötigt, um mehrere Zellen in die Textdatei zu schreiben. Eine Zählschleife (=Anweisungen x-mal ausführen) sieht in VBA so aus:

    'Anweisung 100 mal ausführen
    For Anzahl = 1 To 100
          Anweisung
    Next Anzahl

    Die Anweisung würde in dem Beispiel oben 100-mal hintereinander ausgeführt werden. Mit folgendem Beispiel kann z.B. der Inhalt der Zellen A1 – A25 in eine Textdatei geschrieben werden:

    Sub Beispiel()

    'Variable für eine Textzeile
    Dim record As String

    'Textdatei öffnen
    Open "C:\testdatei.txt" For Output As #1

    'Schleife um mehrere Zeilen zu schreiben
    For iCounter = 1 To 25

         'Zelleninhalt in die Datei schreiben
         record = Cells(iCounter, 1)
         Print #1, record
    Next iCounter

    'Textdatei schließen
    Close #1

    End Sub

    Wahrscheinlich werden noch weitere Elemente der Sprache VBA benötigt. Unter [2] gibt es eine gute und übersichtliche Auflistung der Sprachelemente von VBA mitsamt Beispielen.

    [1] http://msdn.microsoft.com/de-de/library/ee814737.aspx
    [2] http://de.wikibooks.org/wiki/VBA_in_Excel_-_Grundlagen


    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Sebastian Crüger
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können. Bitte nutzen Sie für Rückfragen oder neue Fragen den
    telefonischen Weg über die MSDN Hotline:
    http://www.msdn-online.de/Hotline 
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen sowie die allgemein gültigen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.

    Montag, 20. Februar 2012 14:23