Como mover arquivos usando vba (com exemplo)
Você pode usar o método MoveFile no VBA para mover um arquivo de uma pasta para outra.
Aqui está uma maneira comum de usar esse método na prática:
Sub MoveMyFile()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
'specify source file and destination file
SourceFile = "C:\Users\bob\Desktop\Some_Data_1\soccer_data.txt"
DestFile = "C:\Users\bob\Desktop\Some_Data_2\soccer_data.txt"
'move file
FSO.MoveFile Source:=SourceFile, Destination:=DestFile
End Sub
Esta macro específica move o arquivo chamado football_data.txt de uma pasta chamada Some_Data_1 para uma pasta chamada Some_Data_2 .
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: como mover arquivos usando VBA
Digamos que temos um arquivo de texto chamado football_data.txt localizado em uma pasta chamada Some_Data_1 em nossa área de trabalho:
Agora digamos que queremos usar o VBA para mover este arquivo de texto para outra pasta chamada Some_Data_2 em nossa área de trabalho, que atualmente contém dois arquivos de texto:
Antes de usar o VBA para mover este arquivo, devemos primeiro habilitar o Microsoft Scripting Runtime no editor VB.
Para fazer isso, abra o editor VB, clique em Ferramentas e em Referências :
Na nova janela que aparece, role para baixo até ver Microsoft Scripting Runtime e marque a caixa ao lado dele. Em seguida, clique em OK .
Então podemos criar a seguinte macro para mover o arquivo:
Sub MoveMyFile()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
'specify source file and destination file
SourceFile = "C:\Users\bob\Desktop\Some_Data_1\soccer_data.txt"
DestFile = "C:\Users\bob\Desktop\Some_Data_2\soccer_data.txt"
'move file
FSO.MoveFile Source:=SourceFile, Destination:=DestFile
End Sub
Assim que esta macro for executada, o arquivo denominado football_data.txt será movido da pasta Some_Data_1 para a pasta Some_Data_2 :
Observe que se quiser mover todos os arquivos de uma pasta para outra, você pode usar a seguinte sintaxe:
Sub MoveMyFile()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
'specify source and destination folders
SourceFile = "C:\Users\bob\Desktop\Some_Data_1\*"
DestFile = "C:\Users\bob\Desktop\Some_Data_2\"
'move all files from source folder to destination folder
FSO.MoveFile Source:=SourceFile, Destination:=DestFile
End Sub
Esta macro específica moverá todos os arquivos da pasta Some_Data_1 para a pasta Some_Data_2 .
Nota : Você pode encontrar a documentação completa do método MoveFile aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
Como criar pastas usando VBA
Como deletar pastas usando VBA
Como deletar arquivos usando VBA