Bu öğretici, FileSystemObject'in MoveFile yönteminin nasıl kullanılacağını gösterecektir.
Dosyaları VBA FileSystemObject ile Taşıyın
MoveFile yöntemi, bir veya daha fazla dosyayı bir konumdan diğerine taşır.
VBA Referansını Ayarla
İlk olarak, FileSystemObjects kullanırken, VB komut dosyası çalışma zamanı kitaplığına bir başvuru ayarlamanız gerekebilir: Visual Basic Düzenleyicisini (ALT+F11) açın, açılır menüden Araçlar > Başvurular'ı seçin ve onay kutusunu işaretleyin. 'Microsoft Komut Dosyası Çalışma Zamanı'.
DosyaSistemNesnesi
İkinci olarak, FileSystemObject'i oluşturmalısınız:
12 | FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject") |
Artık MoveFile'a ve diğer FileSystemObject Yöntemlerine erişiminiz var.
VBA Programlama | Code Generator sizin için çalışıyor!
Bir Dosyayı Taşı
Tek bir dosyayı taşımak için FSO.MoveFile( kaynak, hedef ) basit sözdizimini kullanabilirsiniz.
1 | FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt" |
Yukarıda belirtildiği gibi, önce FileSystemObject'i oluşturmanız gerekir:
1234567 | Alt FSOMoveFile()FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")FSO.MoveFile "C:\Src\TestFile.txt", "C:\Dst\ModTestFile.txt"Alt Bitiş |
Birden Fazla Dosyayı Taşı
Aynı ad bölümlerine sahip birden çok dosyayı taşıyabilirsiniz:
1 | FSO.MoveFile "C:\Src\TestFile*.txt", "C:\Dst\" |
Veya aynı uzantıya sahip birden çok dosyayı taşıyabilirsiniz:
1 | FSO.MoveFile "C:\Src\ *.xlsx", "C:\Dst\" |
Veya bir klasördeki tüm dosyalar:
1 | FSO.MoveFile "C:\Src\*", "C:\Dst\" |
Dikkat edin, burada * joker karakterini kullanıyoruz.
* joker karakterini kullanmak yerine, bir klasördeki tüm dosyaları For Her döngüsü kullanarak taşıyabilirsiniz.
12345678910111213141516 | Alt FSOMoveAllFiles ()FSO'yu Yeni FileSystemObject Olarak DimDize Olarak Yoldan KarartDize Olarak ToPath'i DimFileInFromFolder'ı Nesne Olarak KarartFromPath = "C:\Src\"ToPath = "C:\Dst\"FSO'yu ayarla = CreateObject("Scripting.FileSystemObject")FSO.GetFolder(FromPath).Files İçindeki Her FileInFromFolder içinFileInFromFolder.Path'e TaşıSonraki FileInFromFolderAlt Bitiş |
Dosyayı Yeni Bir Klasöre Taşı
Dosyaları yeni oluşturulan bir klasöre de taşıyabilirsiniz. Bunu yapmak için komutu ekleyin
1 | MkDir "C:\Dst\" |
hedef yolu bildirmeden önce.
1234567891011121314151617 | Alt FSOMoveAllFiles ()FSO'yu Yeni FileSystemObject Olarak DimDize Olarak FromPath DimDize Olarak ToPath'i DimFileInFromFolder'ı Nesne Olarak KarartFromPath = "C:\Src\"MkDir "C:\Dst\"ToPath = "C:\Dst\"FSO'yu ayarla = CreateObject("Scripting.FileSystemObject")FSO.GetFolder(FromPath).Files İçindeki Her FileInFromFolder içinFileInFromFolder.Path'e TaşıSonraki FileInFromFolderAlt Bitiş |
VBA Kodu Örnekleri Aramaktan Bıktınız mı? AutoMacro'yu deneyin!
Klasörleri Taşı
Klasörleri taşımak için MoveFolder analog yöntemini kullanabilirsiniz.
1234567 | Alt FSOMoveFolder()FSO'yu Yeni FileSystemObject Olarak DimFSO'yu ayarla = CreateObject("Scripting.FileSystemObject")FSO.MoveFolder "C:\OldFolder", "C:\Dst\NewFolder"Alt Bitiş |