"Scripting.FileSystemObject" suddenly stopped working

B

Budget Programmer

Hello,

I've had a macro in place for over a year and a half. It works fine weekly.
Suddenly, I get an error. I've made no changes to the environment (Vista 32
Home Premium, Excel 2007)

Under Tools / References I have checked:
- Visual Basic For Applications
- Microsoft Excel 12.0 Object Library
- OLE Automation
- Microsoft Office 12.0 Object Library

These haven't changed.
Here's some of the pertanent lines from the code:

Sub CreateEditedSongListing()
'DECLARE VARIABLES
Dim objFSO As Object
Dim objFolder As Object

'Use Microsoft Scripting runtime.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strSongs_EditedPath)

End Sub

I get an error on the first SET statement. "Run-time error: '429' ActiveX
component can't create object."

Any idea what's going on?

Thanks for your help.
 
S

Steve Yandl

If you haven't done so already, power down the PC, restart and then try the
routine again.

I've had similar messages while creating new scripts or VBA routines. I
suspect that if you fail to set the object to nothing at the end of the
routine or if the routine is halted for some reason before reaching "Set
objFolder = Nothing" the object still resides in memory, even after the
workbook and/or Excel are shut down.


Steve Yandl
 
B

Budget Programmer

Steve,
Thanks for responding. That idea came to me as well after a little while.
However, it didn't fix the problem. Any idea where
"Scripting.FileSystemObject" resides? Maybe that file got corrupted somehow.
Phil
 
S

Steve Yandl

Phil,

The Scripting.FileSystemObject is part of the scripting runtime, scrrun.dll.


Steve
 
B

Budget Programmer

Steve,
Somehow, that registration of that DLL got messed up.
Based on Peter T's suggestion I had to run
regsvr32 scrrun.dll
Since this is Vista, I had to run it as an Administrator.
That fixed the problem.
Thanks for your help.
Phil
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top