essayer d'utiliser la technique FSO pour copier du dossier source C: \ (v) au dossier cible C: (tout) mais le code d'exécution Que J'essaie d'atteindre consiste à copier tout le fichier XLSX du dossier source C: \ V contenant également une autre extension de fichier PDF, CSV, TXT, Word .. P> Tous XLSX sera copié dans le dossier C: \ Tout, p> Erreur d'exécution de cette ligne ci-dessous p> **** FSO.CopyFile Source: = SourcePath & FileExtn, Destination: = DestinationPath **** P> P> < Pré> xxx pré> p>
3 Réponses :
HI CHANGEMENT edit Strong> P> Le code ci-dessous doit corriger votre autre sous-procédure. p> FileExtn = "* .xlsx" code> à fileextn = "* .xlsx" code> et cela devrait corriger votre problème.
Salut change selon votre message mais obtenez une erreur de compilation, variable non définie "SUB COPY_FILES_FROM_SUBFOLDERS ()" SOURCEPATH = "C: \ V"
Ce serait un problème différent et je pense qu'il est connecté à votre copy_files_from_subfolders () code> sous procédure. J'ai édité ma réponse et essayez de copier le nouveau code pour la copy_files_from_subfolders. Si vous obtenez toujours une erreur exclure d'abord de votre code et assurez-vous que la copie fonctionne.
J'ai vérifié "sous copie_specific_files_in_foldera ()" fonctionne, il copie tous les fichiers dans le répertoire principal de C: \ V à C: \ Tout sauf dans l'application de votre édition. Je reçois la variable de message d'erreur de compilation non définie SourcePath fort>. "Sous copie_files_from_subfolders ()" en jaune. Sub copy_specific_files_in_foldera()
généralement trop de codage rigide dans les fonctions / sous-marins.
Gardez les variables en tant qu'entrées: J'ai ajouté une référence à Microsoft.Scripsting.Runtime P>
Sub CopyFiles(extension As String, sourceFolder As String, targetFolder As String, recursive As Boolean)
Dim fso As New FileSystemObject
Dim src As folder, dest As folder
Set src = fso.GetFolder(sourceFolder)
Set dest = fso.GetFolder(targetFolder)
Dim srcFile As File
For Each srcFile In src.Files
Dim srcFilepath As String
srcFilepath = srcFile.Path
If Right(srcFilepath, Len(srcFilepath) - InStrRev(srcFilepath, ".") + 1) = extension Then 'extension includes the "."
srcFile.Copy targetFolder, True 'I set Overwrite to True
End If
Next srcFile
If recursive Then 'If recursive is True then will go through all subfolders recursively
Dim subDir As folder
For Each subDir In src.SubFolders
CopyFiles extension, subDir.Path, targetFolder, True
Next subDir
End If
End Sub
Sub testCopy()
CopyFiles ".xlsm", "C:\Source", "C:\Destination\", True
End Sub