Microsoft Excel

Herbers Excel/VBA-Archiv

WorksheetFunction | Herbers Excel-Forum


Betrifft: WorksheetFunction von: Michael
Geschrieben am: 25.01.2010 11:58:53

Hallo,
es geht um folgenden Code:

Sub Schreiben()
Dim vntFileSaveName As Variant
Dim intFF As Integer

Dateiname = Sheets("Tabelle1").Cells(5, 1)
vntFileSaveName = Application.GetSaveAsFilename(Initialfilename:=Dateiname, filefilter:="(*.xls) _
, *.xls, Text Files (*.txt), *.txt")
If vntFileSaveName = False Then Exit Sub

With ThisWorkbook.Worksheets("upload_Kanal")
    intFF = FreeFile()
    Open vntFileSaveName For Output As #intFF
    Print #intFF, Join(WorksheetFunction.Transpose(Range("A4:A44")), vbCrLf)
    Close #intFF
    End With
End Sub
Der Code macht folgendes:
Er speichert Daten einer Excel-Datei in einer txt-Datei ab, dabei gibt es beim abspeichern einen Namens-Vorschlag ab. Mein Problem besteht darin, dass ich beim Range nur eine Spalte ausgeben kann. Ich muss aber mehrere Spalten ausgeben und abspeichern können, also z.B. Range("A4:G44"). Dabei kommt jedoch immer ein Fehler. Kann mir jemand bei diesem Problem weiterhelfen?
Vielen Dank schon einmal im voraus für eure Hilfe.

  

Betrifft: AW: WorksheetFunction von: Rudi Maintaire
Geschrieben am: 25.01.2010 12:12:08

Hallo,
man kann nur eine eindimensionale Matrix Joinen.

Sub Schreiben()
  Dim vntFileSaveName As Variant
  Dim intFF As Integer, i As Long
  
  Dateiname = Sheets("Tabelle1").Cells(5, 1)
  vntFileSaveName = Application.GetSaveAsFilename( _
    InitialFileName:=Dateiname, _
    filefilter:="(*.xls) , *.xls, Text Files (*.txt), *.txt")
  If vntFileSaveName = False Then Exit Sub
  intFF = FreeFile()
  Open vntFileSaveName For Output As #intFF
  
  With ThisWorkbook.Worksheets("upload_Kanal")
    For i = 4 To 44
      Print #intFF, Join(WorksheetFunction.Transpose(.Range(.Cells(i, 1), .Cells(i, 7))),  _
vbCrLf)
    Next
  End With
  
  Close #intFF
End Sub

Gruß
Rudi


  

Betrifft: AW: WorksheetFunction von: Michael
Geschrieben am: 25.01.2010 15:28:50

Hallo, vielen Dank für die schnelle Antwort.
Mein Problem besteht aber immer noch.
Folgender Sachverhalt: Ich habe eine Excel-Tabelle und muss diese in einer Textdatei abspeichern,
ich muss den Bereich von A1 bis K219 ausgeben, damit ich es später wieder in SAP einlesen kann.
Können Sie mir hier vielleicht weiterhelfen? Benutze ich hier einfach die falsche Methode?
Vielen Dank schon einmal im voraus.