Gå til innhold

Lage Excel Fil og Ark med VBScript


Anbefalte innlegg

Jeg prøver å lage en funskjon i VBScript som skal opprette en ny Excel fil med ark som bestemt i inputen til funksjonen. Men den ser ikke helt ut til å fungere som den skal. Funksjonen lager en ny fil med arket som spesifisert hvis filen ikke eksisterer fra før av, men når jeg prøver å åpne filen får jeg bare en generell feilmld fra MS.

 

post-38028-0-43161400-1304679833_thumb.jpg

 

Det ser ikke ut til at fuksjonen lukker Excel skikkelig etter at den er ferdig med å lage filen for jeg ser i 'task manager' at Excle prosessen fortsatt går. Er det noe som kan ta en titt på koden min og se om det er noen som ikke stemmmer/burde vært gjort annerledes?

 

Function funcSys_CreateExcelFile(vstrPath, vstrSheetName)

' Variable Declaration
Dim vobjExcel, vobjWorkbook
Dim vboolExistence

' Constants Declaration
Const xlNormal = -4143

' Create Excel Object
Set vobjExcel = CreateObject("Excel.Application")

' Disable Excel UI Elements
vobjExcel.DisplayAlerts = False
vobjExcel.AskToUpdateLinks = False
vobjExcel.AlertBeforeOverwriting = False

' Check if File Exists
vboolExistence = funcSys_ExecuteFileOperation("Find", vstrPath, "")

' If a File Exists Open the File
If vboolExistence > 0 Then

	' Open the Excel File
	Set vobjWorkbook = vobjExcel.Workbooks.Open(vstrPath, False, False)

Else

	' Create a New Excel File 
	Set vobjWorkbook = vobjExcel.Workbooks.Add()

End If

' Create a New Sheet if One is Specified
If vstrSheetName <> "" Then

	' Add a New Sheet
	vobjWorkbook.Worksheets.Add().Name = vstrSheetName

	' Move the New Sheet to the End
	vobjWorkbook.Sheets(1).Move, vobjWorkbook.Sheets(vobjWorkbook.Sheets.Count)

End If

' Delete Default Sheets if Creating New File
If vboolExistence = 0 Then

	vobjWorkbook.Worksheets(3).Delete
	vobjWorkbook.Worksheets(2).Delete

	' Delete the Last Sheet only if a New Sheet is Given in the Function Argument
	If vstrSheetName <> "" Then vobjWorkbook.Worksheets(1).Delete

End If

' Save the Excel File
vobjWorkbook.SaveAs vstrPath, xlNormal, "", "", False, False

vobjWorkbook.Close

' Catch Error and Inform
' ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
If Err.Number <> 0 Then
	funcSys_CreateExcelFile = -1
	Call funcSys_HandleError($Ext("There was and error creating/updating the Excel file."), vstrFunctionName, Err.Number, Err.Description, 0)
Else
	funcSys_CreateExcelFile = 1
End If
' ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

' Quit
vobjExcel.Quit

' Clear
Set vobjExcel = Nothing
Set vobjWorkbook = Nothing

End Function

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...