Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sub or Function not defined
I am trying to run the following code but get this error: Compile Error: Sub or Function not defined. Any ideas on how to fix this or why it is occurring would be greatly appreciated. Sub DeleteABC() Dim FSO As Scripting.FileSystemObject Dim FF As Scripting.Folder Set FSO = New Scripting.FileSystemObject Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder DoOneFolder FF, FSO End Sub Sub DoOneFolder(FF As Scripting.Folder, FSO As Scripting.FileSystemObject) Dim SubF As Scripting.Folder Dim F As Scripting.File For Each F In FF.Files If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then Kill F.Path End If Next F For Each SubF In FF.SubFolders DoOneFolder SubF, FSO Next SubF End Sub |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sub or Function not defined
Do you have a reference set to the Microsoft Scripting Runtime under Tools,
references in the VBE? -- Jim "hurlbut777" wrote in message ... |I am trying to run the following code but get this error: | | Compile Error: Sub or Function not defined. | | Any ideas on how to fix this or why it is occurring would be greatly | appreciated. | | Sub DeleteABC() | Dim FSO As Scripting.FileSystemObject | Dim FF As Scripting.Folder | Set FSO = New Scripting.FileSystemObject | Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder | | DoOneFolder FF, FSO | End Sub | | Sub DoOneFolder(FF As Scripting.Folder, FSO As | Scripting.FileSystemObject) | Dim SubF As Scripting.Folder | Dim F As Scripting.File | For Each F In FF.Files | If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then | Kill F.Path | End If | Next F | For Each SubF In FF.SubFolders | DoOneFolder SubF, FSO | Next SubF | End Sub | | |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sub or Function not defined
Jim, I believe so. I went to toolsreferences and the Microsoft Scripting Runtime box is checked. "Jim Rech" wrote: Do you have a reference set to the Microsoft Scripting Runtime under Tools, references in the VBE? -- Jim "hurlbut777" wrote in message ... |I am trying to run the following code but get this error: | | Compile Error: Sub or Function not defined. | | Any ideas on how to fix this or why it is occurring would be greatly | appreciated. | | Sub DeleteABC() | Dim FSO As Scripting.FileSystemObject | Dim FF As Scripting.Folder | Set FSO = New Scripting.FileSystemObject | Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder | | DoOneFolder FF, FSO | End Sub | | Sub DoOneFolder(FF As Scripting.Folder, FSO As | Scripting.FileSystemObject) | Dim SubF As Scripting.Folder | Dim F As Scripting.File | For Each F In FF.Files | If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then | Kill F.Path | End If | Next F | For Each SubF In FF.SubFolders | DoOneFolder SubF, FSO | Next SubF | End Sub | | |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sub or Function not defined
Change it to late bound Sub DeleteABC() Dim FSO As Object Dim FF As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder DoOneFolder FF, FSO End Sub Sub DoOneFolder(FF As Object, FSO As Object) Dim SubF As Object Dim F As Object For Each F In FF.Files If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then Kill F.Path End If Next F For Each SubF In FF.SubFolders DoOneFolder SubF, FSO Next SubF End Sub -- __________________________________ HTH Bob "hurlbut777" wrote in message ... I am trying to run the following code but get this error: Compile Error: Sub or Function not defined. Any ideas on how to fix this or why it is occurring would be greatly appreciated. Sub DeleteABC() Dim FSO As Scripting.FileSystemObject Dim FF As Scripting.Folder Set FSO = New Scripting.FileSystemObject Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder DoOneFolder FF, FSO End Sub Sub DoOneFolder(FF As Scripting.Folder, FSO As Scripting.FileSystemObject) Dim SubF As Scripting.Folder Dim F As Scripting.File For Each F In FF.Files If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then Kill F.Path End If Next F For Each SubF In FF.SubFolders DoOneFolder SubF, FSO Next SubF End Sub |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sub or Function not defined
Bob, made changes and code worked. For my own benefit, what is late bound and why did it make a difference? "Bob Phillips" wrote: Change it to late bound Sub DeleteABC() Dim FSO As Object Dim FF As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder DoOneFolder FF, FSO End Sub Sub DoOneFolder(FF As Object, FSO As Object) Dim SubF As Object Dim F As Object For Each F In FF.Files If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then Kill F.Path End If Next F For Each SubF In FF.SubFolders DoOneFolder SubF, FSO Next SubF End Sub -- __________________________________ HTH Bob "hurlbut777" wrote in message ... I am trying to run the following code but get this error: Compile Error: Sub or Function not defined. Any ideas on how to fix this or why it is occurring would be greatly appreciated. Sub DeleteABC() Dim FSO As Scripting.FileSystemObject Dim FF As Scripting.Folder Set FSO = New Scripting.FileSystemObject Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder DoOneFolder FF, FSO End Sub Sub DoOneFolder(FF As Scripting.Folder, FSO As Scripting.FileSystemObject) Dim SubF As Scripting.Folder Dim F As Scripting.File For Each F In FF.Files If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then Kill F.Path End If Next F For Each SubF In FF.SubFolders DoOneFolder SubF, FSO Next SubF End Sub |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sub or Function not defined
It shouldn't have made any difference. Your original code (with the
reference added) worked fine for me. -- Jim "hurlbut777" wrote in message ... | Bob, made changes and code worked. For my own benefit, what is late bound | and why did it make a difference? | | "Bob Phillips" wrote: | | Change it to late bound | | Sub DeleteABC() | Dim FSO As Object | Dim FF As Object | Set FSO = CreateObject("Scripting.FileSystemObject") | Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder | | DoOneFolder FF, FSO | End Sub | | Sub DoOneFolder(FF As Object, FSO As Object) | Dim SubF As Object | Dim F As Object | For Each F In FF.Files | If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then | Kill F.Path | End If | Next F | For Each SubF In FF.SubFolders | DoOneFolder SubF, FSO | Next SubF | End Sub | | | -- | __________________________________ | HTH | | Bob | | "hurlbut777" wrote in message | ... | I am trying to run the following code but get this error: | | Compile Error: Sub or Function not defined. | | Any ideas on how to fix this or why it is occurring would be greatly | appreciated. | | Sub DeleteABC() | Dim FSO As Scripting.FileSystemObject | Dim FF As Scripting.Folder | Set FSO = New Scripting.FileSystemObject | Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder | | DoOneFolder FF, FSO | End Sub | | Sub DoOneFolder(FF As Scripting.Folder, FSO As | Scripting.FileSystemObject) | Dim SubF As Scripting.Folder | Dim F As Scripting.File | For Each F In FF.Files | If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then | Kill F.Path | End If | Next F | For Each SubF In FF.SubFolders | DoOneFolder SubF, FSO | Next SubF | End Sub | | | | | |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
Sub or Function not defined
Late bound just means that the code library is interrogated at run time (each and every time it uses a method or property from that library), rather than setting up the entry points at compile time. So it is inherently less efficient, but it saves having to set references, and more importantly, caters for different versions of the code libraries. But as Jim said, if you had the reference set, it shouldn't have made any difference. -- __________________________________ HTH Bob "hurlbut777" wrote in message ... Bob, made changes and code worked. For my own benefit, what is late bound and why did it make a difference? "Bob Phillips" wrote: Change it to late bound Sub DeleteABC() Dim FSO As Object Dim FF As Object Set FSO = CreateObject("Scripting.FileSystemObject") Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder DoOneFolder FF, FSO End Sub Sub DoOneFolder(FF As Object, FSO As Object) Dim SubF As Object Dim F As Object For Each F In FF.Files If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then Kill F.Path End If Next F For Each SubF In FF.SubFolders DoOneFolder SubF, FSO Next SubF End Sub -- __________________________________ HTH Bob "hurlbut777" wrote in message ... I am trying to run the following code but get this error: Compile Error: Sub or Function not defined. Any ideas on how to fix this or why it is occurring would be greatly appreciated. Sub DeleteABC() Dim FSO As Scripting.FileSystemObject Dim FF As Scripting.Folder Set FSO = New Scripting.FileSystemObject Set FF = FSO.GetFolder("C:\Test") '<<< Change Folder DoOneFolder FF, FSO End Sub Sub DoOneFolder(FF As Scripting.Folder, FSO As Scripting.FileSystemObject) Dim SubF As Scripting.Folder Dim F As Scripting.File For Each F In FF.Files If StrComp(Left(F.Name, 3), "ABC", vbTextCompare) = 0 Then Kill F.Path End If Next F For Each SubF In FF.SubFolders DoOneFolder SubF, FSO Next SubF End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Using dcount function within user-defined worksheet function | Excel Programming | |||
Excel - User Defined Function Error: This function takes no argume | Excel Programming | |||
Need to open the Function Arguments window from VBA for a user defined function. | Excel Programming | |||
User Defined Function does not appear on Function listing | Excel Programming | |||
User-Defined Function pre-empting Built-in Function? How to undo???? | Excel Programming |