Kaimberex

Excel UDF Question

3 posts in this topic

#1 ·  Posted (edited)

I am having some difficulties figuring out why when using the _Excel_BookClose function if I have an Excel sheet already opened that was not opened with _Excel_BookOpen it still closes the workbook. 

 

Here is a snippet of some of my code. Any guidance is appreciated!

 

$ConfigFileCheckPrinterSelection = IniRead($ConfigFile, "Printers", "Selected Printer", "Microsoft XPS Document Writer")
            $oExcelChecklist = _Excel_Open(False)
            If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Error", "Error starting Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
            $sFilePathChecklist = @ScriptDir & "\Documents\New Hire Checklist.xlsx"
            $workbookChecklist = _Excel_BookOpen($oExcelChecklist, $sFilePathChecklist)
            If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Error", "Error opening to workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
            _Excel_Print($oExcelChecklist, $workbookChecklist.Activesheet, Default, $ConfigFileCheckPrinterSelection, Default, Default, Default, Default, Default)
            If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Printing Error", "Error printing worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
            MsgBox($MB_SYSTEMMODAL, "Print Success", "New Hire Checklist successfully printed.")
            $oExcelQuickGuide = _Excel_Open(False)
            If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Error", "Error starting Excel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
            $sFilePathQuickGuide = @ScriptDir & "\Documents\New Hire Quick Guide.xlsx"
            $workbookQuickGuide = _Excel_BookOpen($oExcelQuickGuide, $sFilePathQuickGuide)
            If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Error", "Error opening to workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
            _Excel_Print($oExcelQuickGuide, $workbookQuickGuide.Activesheet, Default, $ConfigFileCheckPrinterSelection, Default, Default, Default, Default, Default)
            If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Printing Error", "Error printing worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
            MsgBox($MB_SYSTEMMODAL, "Print Success", "New Hire Quick Guide successfully printed.")
            _Excel_BookClose($workbookChecklist, False)
            _Excel_BookClose($workbookQuickGuide, False)

I do not receive any errors. Just any excel workbooks I had open before this particular function runs gets closed after the documents print. 

Edited by Kaimberex

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

$Excel = _Excel_Open(True, Default, True, Default, True)

im not 100% sure if this is correct but the last true on the line forces and new instance of Excel rather than using an already open one. try it and see.

Edited by joboy2k
spelling mistake

Share this post


Link to post
Share on other sites

It's correct ;) 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (2016-08-18 - Version 1.4.6.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2016-07-20 - Version 1.2.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now