[dba-Tech] VBS question

Gustav Brock gustav at cactus.dk
Fri Jun 21 08:23:00 CDT 2019


Hi Susan

Excel is very picky with its objects. So, try:

'.vbs file to print Excel PivoTable1.xlsm at 8am daily.

'Path to workbook.
strPath = "C:\Documents\PivotTable1.xlsm" 

'Macro name.
strMacro = "PrintUpdatedPivotTable" 

'Create an Excel instance.
Set objApp = CreateObject("Excel.Application") 
Set objwb = objExcel.Workbooks.Open(strPath) 
objApp.Visible = True  ' Should not be needed.

objApp.Run strMacro

objwb.Close
Set objwb = Nothing

objApp.Quit 

Set objApp = Nothing

'Scheduled task completed. 
MsgBox strPath & " " & strMacro & " PivotTable printed successfully", vbInformation


Also, check that no Excel instance is left open after running the script.

-----Oprindelig meddelelse-----
Fra: dba-Tech <dba-tech-bounces at databaseadvisors.com> På vegne af Susan Harkins
Sendt: 21. juni 2019 15:08
Til: Discussion of Hardware and Software issues <dba-tech at databaseadvisors.com>
Emne: [dba-Tech] VBS question


Do any of you use .vbs scripts to interact with an Excel workbook? I've written one to run from Windows Task Scheduler. It simply triggers a print macro (prints a PivotTable) daily. 

The macro in Excel works. The task is running, but the PivotTable never prints. This is rather new to me, so I'm sure it's a simple fix, probably in one of the referencing statements. Can someone take a look? I've tried several variations of referencing the macro. 

'.vbs file to print Excel PivoTable1.xlsm at 8am daily.

'Path to workbook.
strPath = "C:\Documents\PivotTable1.xlsm" 

'Macro name.
strMacro = "PrintUpdatedPivotTable" 

'Create an Excel instance.
Set objApp = CreateObject("Excel.Application") Set objwb =
objExcel.Workbooks.Open(strPath) objApp.Visible = True

objApp.Run strMacro
objwb.Close
objApp.Quit 

'Scheduled task completed. 
MsgBox strPath & " " & strMacro & " PivotTable printed successfully", vbInformation

Susan H. 



More information about the dba-Tech mailing list