Announcement

Collapse
No announcement yet.

TXT-Datei per Skript als XLS-Datei speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TXT-Datei per Skript als XLS-Datei speichern

    Hallo miteinander,

    ich habe ein kleine Skriptdatei, welche aufgerufen wird, um eine vorliegende Tabgetrennte Textdatei in Excel zu laden und als Excel-Datei zu speichern.
    (Office 07 + Vista und Office 03 + Win2000 als Testsystem)

    Leider bringt er mir beim SaveAs() folgenden Fehler:

    "Die SaveAs-Methode des Workbook-Objekts konnte nicht ausgeführt werden"
    "Code: 800A03EC"

    Wenn ich die ganzen Parameter beim SaveAs weglasse und nur den Dateinamen angebe, dann funktioniert es.
    Allerdings ist das dann keine gespeicherte Excel-Datei sondern immer noch die TXT mit XLS-Endung (und entsprechend meckert Excel beim Versuch, diese zu öffnen)

    Vielleicht fällt euch ja was dazu ein - ich bin mit meinem Latein am Ende.
    Hier die Skriptdatei (das ganze Gerümpel vor dem Save ist nicht wichtig):
    Code:
      '*** Excel - Object erstellen
    
      Dim objXL
      Set objXL = WScript.CreateObject("Excel.Application")
    
      With ObjXL
    
         .WorkBooks.OpenText WScript.Arguments(0)
    
        '*** Autofilter aktivieren
        .Selection.Autofilter
    
        '*** Überschrift auswählen und Schrift auf fett umstellen
        .Rows("1").Select
        .Selection.Font.Bold = True
    
        '*** Überschrift fixieren
        .Rows("2").Select
        .ActiveWindow.FreezePanes = True
    
        '*** optimale Breite der Spalten
        .Cells.Select
        .Selection.Columns.AutoFit
    
        '*** numerische Spalten formatieren
        If WScript.Arguments.Count = 2 Then
          For Col = 1 To Len(WScript.Arguments(1))
            Select Case Mid(WScript.Arguments(1), Col, 1) 
              Case "0"
                dasFormat = "#0"
              Case "1"
                dasFormat = "#,##0.0"
              Case "2"
                dasFormat = "#,##0.00"
              Case "3"
                dasFormat = "#,##0.000"
              Case "4"
                dasFormat = "#,##0.0000"
              Case "5"
                dasFormat = "#,##0.00000"
              Case Else
                dasFormat = ""
            End Select
            If dasFormat <> "" Then 
    	  .Columns(Col).Select
              .Selection.NumberFormat = dasFormat
            End If
          Next
        End If
    
        '*** Cursor in erste Zelle stellen
        .Cells("1").Select
    
        '*** Nun für den Anwender sichtbar machen 
        '.Visible = True
    '	ActiveWorkbook.SaveAs Filename:= _
    '        "c:\test.xls", FileFormat:=xlNormal, _
    '        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
    '        CreateBackup:=False
    'Call	.ActiveWorkbook.SaveAs("c:\test.xls",xlNormal)
    '	.ActiveWorkbook.SaveCopyAs "c:\test.xls"
    
        Call .ActiveWorkbook.SaveAs("c:\test.xls",xlNormal,"","",False,False)
    	
    	.ActiveWorkbook.Close(False)
    
      End With
    Danke schonmal im Voraus für Eure Mühe,

    Wannaevil

  • #2
    Hallo,

    ich habe jetzt leider Deine Programmversionen nicht zur Verfügung.
    Aber ich würde eine Textdatei in Excel öffnen und ein Makro aufzeichnen und die Datei im gewünschten Excel Format abspeichern. Dann schau Dir im Makro das angegebene Fileformat an. Das ist wahrscheinlich nicht xlNormal. Dann schreib dieses in Deinen Saveas Befehl, der klappt, rein.

    Gruß

    frauwue
    docendo discimus

    Comment

    Working...
    X