Run-Time error '424' Object required. (1 Viewer)

Lochwood

Registered User.
Local time
Yesterday, 17:23
Joined
Jun 7, 2017
Messages
130
I am trying to delete empty subfolders from Doc-Production older using a button but am getting the following error. Run-Time error '424' Object required. Code stops at imoji.

Private Sub Command65_Click()

'On Error Resume Next ' <-- Comment out for troubleshooting.

Const Prep = "\\servername\DART$\Document-Library\Doc-Production"

Dim objFolder, objSubFolder, objFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.getFolder(Prep)

Call Search(objFolder)
End Sub
Sub Search(objFolder)


:banghead:For Each objSubFolder In objFolder.SubFolders
Search (objSubFolder)
Next
For Each objSubFolder In objFolder
If objSubFolder.Files.Count = 0 Then objSubFolder.Delete
Next
End Sub
 

Ranman256

Well-known member
Local time
Yesterday, 20:23
Joined
Apr 9, 2015
Messages
4,337
i use:
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Search FileSystem.GetFolder(HostFolder)

and it works.
 

Lochwood

Registered User.
Local time
Yesterday, 17:23
Joined
Jun 7, 2017
Messages
130
getting the same error which makes me think the code is in the wrong place.
 

Attachments

  • Doc1.docx
    92.7 KB · Views: 101
Last edited:

Cronk

Registered User.
Local time
Today, 10:23
Joined
Jul 4, 2013
Messages
2,772
You've DIM'd objSubFolder in the click routine, but not in the second. The object is therefore out of scope in your Search sub.
 

Lochwood

Registered User.
Local time
Yesterday, 17:23
Joined
Jun 7, 2017
Messages
130
Cheers Cronk but getting same error.
 

Attachments

  • Capture4 .JPG
    Capture4 .JPG
    61.2 KB · Views: 136

Cronk

Registered User.
Local time
Today, 10:23
Joined
Jul 4, 2013
Messages
2,772
Then maybe your Search routine is no good. Try

Code:
Sub Search(objFolder)
   dim objsubfolder
   
   if objfolder.files.count < 1 Then
      objfolder.delete
      exit sub
   endif
   
   if objfolder.subFolders.count > 0 Then
      for each objsubfolder in objfolder.subFolders
         call search(objsubfolder)
      next
   endif

End Sub
 

Lochwood

Registered User.
Local time
Yesterday, 17:23
Joined
Jun 7, 2017
Messages
130
You sent me on the right track.. Thanks. Here's the code that worked for others.

Code:
Private Sub Command65_Click()
On Error Resume Next ' <-- Comment out for troubleshooting.

Const Prep = "\\Servername\DART$\Document-Library\Doc-Production"

Dim objfolder
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objfolder = objFSO.getFolder(Prep)

Call Search(objfolder)
End Sub
Sub Search(objfolder)

Const Prep = "\\Servername\DART$\Document-Library\Doc-Production"
Dim objsubfolder, objfile

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objfolder = objFSO.getFolder(Prep)

   'For Each objfile In objfolder.Files
        'If DateDiff("d", objfile.dateLastModified, Now) > 30 Then objfile.Delete
    'Next
    
    For Each objsubfolder In objfolder.SubFolders
    If objsubfolder.Files.Count = 0 Then objsubfolder.Delete
    Next
        
End Sub
 
Last edited by a moderator:

sonic8

AWF VIP
Local time
Today, 02:23
Joined
Oct 27, 2015
Messages
998
Sub Search(objFolder as Object)



Sent from my HTC One A9s using Tapatalk
 

Users who are viewing this thread

Top Bottom