Vba kullanarak bir excel dosyası nasıl kopyalanır?
Bir dosyayı (çalışma kitabını) bir klasörden diğerine kopyalamak için VBA kodunu kullanabilir veya bir dosyayı aynı klasöre farklı bir ad kullanarak da kopyalayabilirsiniz.
Bu eğitimde her iki yönde de kod yazmayı göreceğiz. Burada Windows’taki dosya ve klasörlere erişim sağlayan FileSystemObject’i kullanmanız gerekir.
Excel dosyasını ayrı bir klasöre kopyalama
Sub myMacro() Dim myFile As Object Set myFile = CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True) End Sub
Yukarıdaki kodu yazmak için:
- Öncelikle bir değişken tanımlamanız gerekir.
- Daha sonra, az önce tanımladığınız değişkene FileSystemObject’i belirtmeniz gerekir.
- Daha sonra kaynak konumunu “CopyFile” yönteminde ayarlamanız gerekir.
- Sonunda, yapıştırmak istediğiniz klasör konumunu ayarlayın.
Bu makroyu çalıştırdığınızda Excel çalışma kitabı “metin dosyasını” klasörden kopyalayıp kodda belirttiğimiz konuma yapıştırır.
Bir dosyayı kopyalayın ve yeniden adlandırın
Bir dosyayı aynı konuma kopyalayıp yapıştırmaya çalıştığınızda, VBA’nın size bir hata gösterme ihtimali yüksektir. Bu durumda en iyi yol, dosyayı kopyalarken yeniden adlandırmaktır.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\", True)
Yukarıda önceki yöntemde kullandığım satır kodu var. Artık yalnızca bu satırda değişiklik yapmanız gerekiyor. Hedef konum için yeni dosyada kullanmak istediğiniz dosyayı eklemeniz gerekir.
Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", "C:\Users\admin\Desktop\folder\test-file1.xlsx ", True)
Bu kodu çalıştırdığınızda, dosyayı (text-file.xlsx) klasörden kopyalar ve aynı klasöre farklı bir adla (test-file1.xlsx) kopyalar.
Dim myFile As Object Set myFile = _ CreateObject("Scripting.FileSystemObject") Call myFile.CopyFile("C:\Users\admin\Desktop\folder\test-file.xlsx", _ "C:\Users\admin\Desktop\folder\test-file1.xlsx", True) End Sub