Hallo,
bin leider ungeübt in VBA. Vielleicht kann mir jemand meinen Denkfehler auflösen:
Möchte eine Tabelle mit Daten (hier Spieldaten) füllen und dann das Tabellenblatt als XLS-File mit SAVEAS unter neuem Namen ablegen, aber ohne Makro. Versuche es durch SAVEAS nach XLSX und dann nochmal von XLSX nach XLS. Leider komme ich nicht weiter als bis zum Öffnen des XLSX, dann endet das Makro. Weiß jemand Rat? Vielen Dank schon mal.
Hier mein vollständiger Code:
_____________________
Option Explicit
Private Sub Workbook_Open()
Call MakroTest
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Close SaveChanges:=False
End Sub
Sub MakroTest()
Dim dsn, dsnNeu, dsnXlsx As String
Dim objWorkbook As Workbook
dsn = "C:\Users\Hans\Orig.xls"
dsnXlsx = "C:\Users\Hans\Orig_XLSX.xlsx"
dsnNeu = "C:\Users\Hans\Orig_Neu.xls"
ThisWorkbook.Sheets(1).Cells.Clear 'Alle Daten löschen
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Workbooks.OpenText fileName:=dsn, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1))
ThisWorkbook.Sheets(1).Cells(1, 1) = "Zei 1 Sp 1"
ThisWorkbook.Sheets(1).Cells(1, 2) = "Zei 1 Sp 2"
ThisWorkbook.Sheets(1).Cells(2, 1) = "Zei 2 Sp 1"
ThisWorkbook.Sheets(1).Cells(2, 2) = "Zei 2 Sp 2"
Workbooks(2).Close
ThisWorkbook.SaveAs dsnXlsx, xlWorkbookDefault 'Abspeichern als .xlsx ohne Macro
MsgBox "vor Open"
Set objWorkbook = Workbooks.Open(fileName:=dsnXlsx) 'Open .Xlsx
MsgBox "nach Open"
objWorkbook.SaveAs dsnNeu, xlNormal 'Save .Xls
MsgBox "nach Save"
Call objWorkbook.Close
'Kill dsnXlsx
ThisWorkbook.Saved = False
ThisWorkbook.Close
Application.Quit
End Sub
|