Vba kullanarak bir sayfayı nasıl kopyalayabilir ve taşıyabilirim?

VBA kodunu kullanarak Excel’de bir sayfayı kopyalayıp taşıyabilirsiniz ve bu eğitimde bunu yapmanın farklı yollarını öğreneceğiz.

Aynı çalışma kitabındaki bir sayfayı kopyalama

Aynı çalışma kitabındaki bir sayfayı kopyalamak istiyorsanız kopyalama yöntemini kullandığınız yerde aşağıdaki kodu kullanabilirsiniz.

 Sheets("Sheet5").Copy Before:=Sheets(1)

Bu kodda sayfa1 çalışma kitabının ilk sayfasıdır ve bu kodu çalıştırdığınızda çalışma kitabının ilk sayfasından önceki “Sayfa5” isimli sayfayı kopyalar.

bir sayfayı aynı klasöre kopyala

Ve eğer ilk sayfadan sonra kopyalamak isterseniz kod aşağıdaki gibi olacaktır.

 Sheets("Sheet5").Copy After:=Sheets(1)

Ve eğer ilk sayfadan sonra kopyalamak isterseniz kod aşağıdaki gibi olacaktır.

 Sheets("Sheet5").Copy Before:=Sheets("Sheet3") Sheets("Sheet5").Copy After:=Sheets("Sheet3")

Bu VBA kodunu çalıştırdığınızda, “Sayfa5″i “Sayfa3″ten önce ve sonra kopyalar.

vba kodunu ilk sayfadan sonra kopyalamak istiyorsanız

Aşağıdaki kod satırıyla çalışma kitabının son sayfasından sonraki bir sayfayı kopyalayabilirsiniz. Sayfa sayısını almak içinsheet.count’u kullanır, ardından sayfayı en son kopyalamak için count’u kullanır.

 Sheets("myNewSheet").Move After:=Sheets(Sheets.Count)
ciltleyicideki son sayfadan sonra bir sayfayı kopyala

Yararlı bağlantılar: Makro çalıştırmaMakro kaydediciVisual Basic DüzenleyiciKişisel Makrolar El Kitabı

Aynı çalışma kitabındaki bir sayfayı yeni bir adla kopyalama

Ve eğer bir sayfayı kopyalayıp anında yeniden adlandırmak istiyorsanız, tıpkı aşağıdaki kod gibi name özelliğini kullanmanız gerekir.

 Sheets("Sheet5").Move Before:=Sheets(1) ActiveSheet.Name = "myNewSheet"
bir sayfayı yeni adla-aynı-çalışma kitabına kopyala

Aynı çalışma kitabındaki bir sayfayı taşıma

Aynı çalışma kitabındaki bir sayfayı taşımak için aşağıdaki koddaki gibi taşıma yöntemini kullanmanız gerekir.

 Sheets("Sheet5").Move After:=Sheets(1)
aynı ciltleyicide bir sayfayı taşı

Bu kod, yukarıdaki anlık görüntüde görebileceğiniz gibi “Sayfa5″i “Sayfa2″nin önüne taşıyacaktır.

Bir sayfayı yeni çalışma kitabına kopyalama

Geçerli çalışma kitabında bir sayfa tanımlamadan kopyalama yöntemini kullandığınızda, VBA yeni bir çalışma kitabı açar ve bu sayfayı o çalışma kitabına kopyalar.

 Sheets("Sheet5").Copy

Ve bir sayfayı yeni bir çalışma kitabına taşımak için.

 Sheets("Sheet5").Move

Birden çok sayfayı yeni çalışma kitabına kopyalama

Yeni çalışma kitabına aynı anda birden fazla sayfa eklemek istiyorsanız aşağıdaki gibi bir kod kullanın.

 Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy

Yukarıdaki kod bir dizi sayfa oluşturur ve ardından bunların hepsini yeni bir çalışma kitabına kopyalar.

Bir sayfayı başka bir çalışma kitabına kopyalama

Bir sayfayı zaten açık olan başka bir çalışma kitabına kopyalamak istiyorsanız, çalışma kitabının adını bağımsız değişkenden sonra veya önce belirtebilirsiniz.

 Sheets("Sheet1").Copy Before:=Workbooks("Book1.xlsx").Sheets(1)

Yukarıdaki kod, Sayfa1’i etkin çalışma kitabından kopyalar ve onu zaten açık olan Kitap1.xlsx’in ilk sayfasının öncesine ekler.

Ve eğer onu taşımak istersen.

 Sheets("Sheet1").Move Before:=Workbooks("Book1.xlsx").Sheets(1)

Bir sayfayı kapalı bir çalışma kitabına kopyalama

Bir sayfayı kapalı bir çalışma kitabına kopyalamanın bir yolu vardır ve onu açmanıza gerek yoktur. Aşağıdaki koda bakın.

 Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") Workbooks("Book1.xlsx").Sheets("Sheet2").Copy Before:=mybook.Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub

Bu kodda myBook değişkeniniz ve ona atanmış bir çalışma kitabınız var. Kodun görevi arka uçta gerçekleştirebilmesi için ekran güncellemeyi devre dışı bıraktık.

Başka bir çalışma kitabından bir sayfayı açmadan kopyalama

Aynı şekilde kapalı bir çalışma kitabından bir sayfayı kopyalayıp taşıyabilirsiniz. Aşağıdaki koda bakın.

 Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") mybook.Sheets("mySheet").Copy Before:=Workbooks("Book1.xlsx").Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub

Yorum ekle

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