View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Invalid Procedure Call

I think it's because you're stacking calls to Dir().

Option Explicit
Sub CopyAll()
Dim VBComp As VBIDE.VBComponent
Dim FName As String
Dim w As String
Dim myFolder As String

myFolder = "C:\Users\Jim\Documents\MsExcel\"

w = Dir(myFolder & "*.xls")

Do While w < ""
Workbooks.Open myFolder & w 'changed to include path
With Workbooks(w)
FName = .Path & "\code.txt"

'just delete it if it's there
'ignore any error if it's not
On Error Resume Next
Kill FName
On Error GoTo 0

For Each VBComp In .VBProject.VBComponents
If VBComp.Type < vbext_ct_Document Then
VBComp.Export FName
ThisWorkbook.VBProject.VBComponents.Import FName
Kill FName
End If
Next VBComp

End With

Workbooks(w).Close Savechanges:=true 'don't you want to save it???
w = Dir()
Loop
End Sub


Pops Jackson wrote:

I have the following code I am trying to execute:

At w = Dir() near the end of the procedure, I get the "Invalid Procedure
Call or Argument" error message. I thought I knew what to do about this but
nothing works.

Any ideas welcomed.

Sub CopyAll()
Dim VBComp As VBIDE.VBComponent
Dim FName As String
Dim w As String
w = Dir("C:\Users\Jim\Documents\MsExcel\*.xls")

Do While w < ""

Workbooks.Open (w)
With Workbooks(w)

FName = .Path & "\code.txt"
If Dir(FName) < "" Then
Kill FName
End If
For Each VBComp In .VBProject.VBComponents
If VBComp.Type < vbext_ct_Document Then
VBComp.Export FName
ThisWorkbook.VBProject.VBComponents.Import FName

Kill FName
End If
Next VBComp
End With
Workbooks(w).Close
w = Dir() ' Error Message "Invalid Procedure Call or Argument"

Loop
End Sub
--
Thanks,

Pops Jackson


--

Dave Peterson