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:

bir excel dosyasını bir klasöre kopyalama
  1. Öncelikle bir değişken tanımlamanız gerekir.
  2. Daha sonra, az önce tanımladığınız değişkene FileSystemObject’i belirtmeniz gerekir.
  3. Daha sonra kaynak konumunu “CopyFile” yönteminde ayarlamanız gerekir.
  4. 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.

dosya sistemi nesnesini belirtin

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.

bir dosyayı kopyala ve yeniden adlandır
 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

Yorum ekle

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir