2017-02-27 9 views
0

パスを変更するまで、別のスクリプトを組み合わせようとしました。strPathのパスを変更します。私が何かに変更すると、エラーメッセージが表示されます。パスを変更するときにプロシージャの呼び出しまたは引数が無効

無効なプロシージャコールまたは引数です。

スクリプトが(サブフォルダを含む)任意のディレクトリにある最新のファイルを見つけ、スクリプトは2つのチェック、のための1つをやっていたように見えます

Dim strPath, oFSO, oFile, oFolder, dteDate, strName, N 

strPath = "C:\Users\parjo16\Documents\Archived" 
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oFolder = oFSO.GetFolder(strPath) 
For Each oFile In oFolder.Files 
    If oFile.DateLastModified > dteDate Then 
    dteDate = oFile.DateLastModified 
    strName = oFile.Name 
    End If 
    N = N + 1 
Next 'oFile 

Call FindTheSubFolderFiles(oFolder, N, dteDate, strNme) 

Const strfolder = "C:\SalaryData\" 
Const Overwrite = True 
Dim oFSOd 

Set oFSOd = CreateObject("Scripting.FileSystemObject") 

If Not oFSOd.FolderExists(strfolder) Then 
    oFSOd.CreateFolder strfolder 
End If 

oFSOd.CopyFile strNme, strfolder & "salaries.xlsx", Overwrite 

Set oFSOd = Nothing 
Set oFSO = Nothing 
Set oFile = Nothing 
Set oFolder = Nothing 

Function FindTheSubFolderFiles(ByRef oParentFolder, ByRef lngR, ByRef dteDte, ByRef strNme) 
    Dim oSubFolder 
    Dim oFile 
    For Each oSubFolder In oParentFolder.SubFolders 
    For Each oFile In oSubFolder.Files 
     If oFile.DateLastModified > dteDte Then 
     dteDte = oFile.DateLastModified 
     strNme = oFile.Path 
     End If 
     lngR = lngR + 1 
    Next 
    FindTheSubFolderFiles oSubFolder, lngR, dteDte, strNme 
    Next 'oSubFolder 
    Set oSubFolder = Nothing 
    Set oFile = Nothing 
End Function 
+0

*正確に*あなたがstrPath' 'の値を変更しており、正確にどの声明* *エラーを投げていますか? –

+0

私はそれをC:\ Users \ parjo16 \ Documents \ CloseFilesのような他のパスに変更しようとしています。エラーは、oFSOd.CopyFile strNme、strfolder& "salaries.xlsx"に上書きされ、上書きされます。ありがとうございます。 –

+0

ファイルをコピーしようとする前に 'strNme'と' strFolder& "salaries.xlsx"の値を確認してください。 –

答えて

0

フォルダにファイルをコピーして貼り付けるためのものですメインフォルダはサブフォルダ用です。結果がもう一方の場合、それは空白に戻ります。

これは現在動作しているようだ:

Function FindTheSubFolderFiles(ByRef oParentFolder, ByRef lngR, ByRef dteDte, ByRef strNme) 
    Dim oSubFolder 
    Dim oFile 
    For Each oSubFolder In oParentFolder.SubFolders 
     For Each oFile In oSubFolder.Files 
      If oFile.DateLastModified > dteDte Then 
       dteDte = oFile.DateLastModified 
       strNme = oFile.path 
      End If 
      lngR = lngR + 1 
     Next 
     FindTheSubFolderFiles oSubFolder, lngR, dteDte, strNme 
    Next 'oSubFolder 
    Set oSubFolder = Nothing 
    Set oFile = Nothing 
End Function 

Dim strPath, oFSO, oFile, oFolder, dteDate, strName, N 
strPath = "C:\Users\parjo16\Documents\Archived\" 
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oFolder = oFSO.GetFolder(strPath) 
For Each oFile In oFolder.Files 
    If oFile.DateLastModified > dteDate Then 
     dteDate = oFile.DateLastModified 
     strName = oFile.Name 
    End If 
    N = N + 1 
Next 'oFile 

Call FindTheSubFolderFiles(oFolder, N, dteDate, strNme) 

Const strfolder = "C:\SalaryData\" 
Const Overwrite = True 
Dim oFSOd 

Set oFSOd = CreateObject("Scripting.FileSystemObject") 

If Not oFSOd.FolderExists(strfolder) Then 
    oFSOd.CreateFolder strfolder 
End If 

On Error Resume Next 

oFSOd.CopyFile strPath & strName, strfolder & "salaries.xlsx", Overwrite 
oFSOd.CopyFile strNme, strfolder & "salaries.xlsx", Overwrite 

Set oFSOd = Nothing 

Set oFSO = Nothing 
Set oFile = Nothing 
Set oFolder = Nothing 
関連する問題