Hallo ik heb onderstaand script voor het uitvoeren van een tekstbestand in Excel.
Bij het drukken op annuleren krijg ik het niet voor elkaar dat ik gewoon terug ga naar Excel. Ik krijg telkens de fout: Methode OpenText van object Workbooks is mislukt.
Nu denk ik dat de macro gewoon doorloopt ondanks dat ik op annuleren druk. Hoe kan dit?
Sub Ask_for_File()
Dim sFile As String
'Vraag naar txt file
sFile = GetFile("Change eWON file lay-out for DASYLab")
'OK - er is een txt bestand
Debug.Print sFile
If sFile = "" Then
Quit.Application
End If
'Roep de macro import code aan met het opgevraagde txt bestand
Call Create_Workbook_with_File(sFile)
End Sub
'Presenteer user met GetOpenFileName dialoog
'Geeft slechts één enkele filename weer!
Function GetFile(sTitle As String) As String
Dim sFilter As String
Dim bMultiSelect As Boolean
'Sample filter
'sFilter = "Txt files"
sFilter = "Txt Files (*.txt), *.txt"
bMultiSelect = False
GetFile = Application.GetOpenFilename(FileFilter:=sFilter, _
Title:=sTitle, MultiSelect:=bMultiSelect)
End Function
Sub Create_Workbook_with_File(sFile As String)
'Maak gegevens geschikt voor verwerking
Workbooks.OpenText Filename:= _
sFile, Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 9), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1)), DecimalSeparator:=".", ThousandsSeparator _
:="'", TrailingMinusNumbers:=True
Columns("A:A").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Range("A1").Select
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
End Sub
Bij het drukken op annuleren krijg ik het niet voor elkaar dat ik gewoon terug ga naar Excel. Ik krijg telkens de fout: Methode OpenText van object Workbooks is mislukt.
Nu denk ik dat de macro gewoon doorloopt ondanks dat ik op annuleren druk. Hoe kan dit?
Sub Ask_for_File()
Dim sFile As String
'Vraag naar txt file
sFile = GetFile("Change eWON file lay-out for DASYLab")
'OK - er is een txt bestand
Debug.Print sFile
If sFile = "" Then
Quit.Application
End If
'Roep de macro import code aan met het opgevraagde txt bestand
Call Create_Workbook_with_File(sFile)
End Sub
'Presenteer user met GetOpenFileName dialoog
'Geeft slechts één enkele filename weer!
Function GetFile(sTitle As String) As String
Dim sFilter As String
Dim bMultiSelect As Boolean
'Sample filter
'sFilter = "Txt files"
sFilter = "Txt Files (*.txt), *.txt"
bMultiSelect = False
GetFile = Application.GetOpenFilename(FileFilter:=sFilter, _
Title:=sTitle, MultiSelect:=bMultiSelect)
End Function
Sub Create_Workbook_with_File(sFile As String)
'Maak gegevens geschikt voor verwerking
Workbooks.OpenText Filename:= _
sFile, Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 9), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1)), DecimalSeparator:=".", ThousandsSeparator _
:="'", TrailingMinusNumbers:=True
Columns("A:A").Select
Selection.NumberFormat = "[$-F400]h:mm:ss AM/PM"
Range("A1").Select
ActiveWorkbook.Save
Application.DisplayAlerts = False
ActiveWindow.Close
End Sub