VBA Sayfayı Kopyala / Sayfayı Başka Bir Çalışma Kitabına Kopyala

Bu eğitim, VBA kullanarak bir Sayfanın veya Çalışma Sayfasının nasıl kopyalanacağını ele alacaktır.

Çalışma Sayfasını Yeni Çalışma Kitabına Kopyala

Bir Çalışma Sayfasını yeni bir Çalışma Kitabına kopyalamak için:

1 Sayfalar("Sayfa1").Kopyala

ActiveSheet'i Yeni Çalışma Kitabına Kopyala

ActiveSheet'i yeni bir Çalışma Kitabına kopyalamak için:

1 ActiveSheet.Copy

Birden Çok Sayfayı Yeni Çalışma Kitabına Kopyalayın

Birden çok Sayfayı yeni bir çalışma kitabına kopyalamak için:

1 ActiveWindow.SelectedSheets.Copy

Sayfayı Aynı Çalışma Kitabında Kopyala

Size en basit Sayfa kopyalama örneğini göstererek başladık: Sayfaları yeni bir Çalışma Kitabına kopyalama. Aşağıdaki bu örnekler, aynı Çalışma Kitabında bir Sayfayı nasıl kopyalayacağınızı gösterecektir. Bir Çalışma Kitabı içindeki bir Sayfayı kopyalarken, bir konum belirtmelisiniz. Bir konum belirtmek için, VBA'ya Çalışma Sayfasını başka bir Çalışma Sayfasından ÖNCE veya SONRA taşımasını söyleyeceksiniz.

Sayfayı Başka Bir Sayfadan Önce Kopyala

Burada Sheet2'den önce Sheet'i kopyalayıp yapıştırmayı belirteceğiz.

1 Sayfalar("Sayfa1").Önce Kopyala:=Sayfalar("Sayfa2")

İlk Sayfadan Önce Sayfayı Kopyala

Sayfa adını belirtmek yerine, Sayfa konumunu da belirtebilirsiniz. Burada, Çalışma Kitabındaki ilk Sayfadan önce bir Sayfayı kopyalayıp yapıştırıyoruz.

1 Sayfalar("Sayfa1").Önce Kopyala:=Etablolar(1)

Yeni oluşturulan Sayfa şimdi Çalışma Kitabındaki ilk Sayfa olacaktır.

Sayfayı Son Sayfadan Sonra Kopyala

VBA'ya Sayfayı başka bir sayfadan SONRA yapıştırmasını söylemek için After özelliğini kullanın. Burada, Çalışma Kitabındaki son Sayfadan sonra bir Sayfayı kopyalayıp yapıştıracağız:

1 Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)

Çalışma Kitabındaki Sayfaların sayısını saymak için Sheets.Count kullandığımıza dikkat edin.

Sayfayı Taşı

Benzer sözdizimini kullanarak Çalışma Kitabındaki bir Sayfayı da taşıyabilirsiniz. Bu kod, Sayfa1'i Çalışma Kitabının sonuna taşıyacaktır:

1 Sayfalar("Sayfa1").Sonra Taşı:=Sayfalar(Sayfalar.Sayı)

Kopyalama ve Ad Sayfası

Bir Sayfayı kopyalayıp yapıştırdıktan sonra, yeni oluşturulan sayfa ActiveSheet olur. Yeni sayfamızı yeniden adlandırmak için ActiveSheet.Name'i kullanmanız yeterlidir:

123456 Alt CopySheetRename1()Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)ActiveSheet.Name = "Son Sayfa"Alt Bitiş

Sayfa adı zaten varsa, yukarıdaki kod bir hata oluşturur. Bunun yerine, VBA'ya Sayfayı adlandırmayı yok saymasını ve prosedürün geri kalanına devam etmesini söylemek için “Sonraki Hatada Devam Et” seçeneğini kullanabiliriz:

12345678 Alt CopySheetRename2()Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)Hatada Devam Et SonrakiActiveSheet.Name = "Son Sayfa"Hatada GoTo 0Alt Bitiş

Veya, sayfayı kopyalamaya çalışmadan önce Sayfa adının zaten var olup olmadığını test etmek için RangeExists İşlevimizi kullanın:

123456789101112131415161718 Alt CopySheetRename3()Eğer RangeExists ("Son Sayfa") SonraMsgBox "Sayfa zaten var."BaşkaSheets("Sheet1").Copy After:=Sheets(Sheets.Count)ActiveSheet.Name = "Son Sayfa"BitirAlt Bitişİşlev RangeExists(WhatSheet As String, İsteğe Bağlı ByVal WhatRange As String = "A1") Boolean OlarakAralık olarak Dim testiHatada Devam Et SonrakiSet testi = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Err.Number = 0Hatada GoTo 0Bitiş İşlevi

Hücre Değerine Dayalı Kopyalama ve Ad Sayfası

Ayrıca bir Sayfayı Hücre Değerine göre kopyalamak ve adlandırmak isteyebilirsiniz. Bu kod, Çalışma Sayfasını A1'deki Hücre değerine göre adlandıracaktır.

12345678 Alt CopySheetRenameFromCell()Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)Hatada Devam Et SonrakiActiveSheet.Name = Aralık("A1").ValueHatada GoTo 0Alt Bitiş

Çalışma Sayfasını Başka Bir Çalışma Kitabına Kopyala

Şimdiye kadar Çalışma Kitabındaki Sayfaları kopyalamak için çalıştık. Şimdi, Sayfaları diğer Çalışma Kitaplarına kopyalayıp yapıştırmak için örnekleri ele alacağız. Bu kod, bir Sayfayı başka bir çalışma kitabının başına kopyalayacaktır:

1 Sheets("Sheet1").Copy Before:=Workbooks("Example.xlsm").Sheets(1)

Bu, bir Çalışma Sayfasını başka bir Çalışma Kitabının sonuna kopyalayacaktır.

1 Sheets("Sheet1").Copy After:=Workbooks("Example.xlsm").Sheets(Workbooks("Example.xlsm").Sheets.Count)

Değiştirdiğimize dikkat edin 1 ile birlikte Çalışma Kitapları(“Örnek.xlsm”).Sheets.Count son Çalışma Sayfasını almak için.

Çalışma Sayfasını Kapalı Bir Çalışma Kitabına Kopyala

Ayrıca bir Çalışma Sayfasını kapalı bir Çalışma Kitabına kopyalamak isteyebilirsiniz. Bu kod, içine bir Sayfa kopyalayabilmeniz için kapalı bir Çalışma Kitabı açacaktır.

123456789 Alt CopySheetToClosedWB()Application.ScreenUpdating = YanlışCloseBook'u ayarla = Workbooks.Open("D:\Dropbox\excel\makaleler\example.xlsm")Sayfalar("Sayfa1").Önce Kopyala:=kapalıKitap.Tablolar(1)kapalıBook.Close SaveChanges:=TrueApplication.ScreenUpdating = DoğruAlt Bitiş

Sayfayı Açmadan Başka Bir Çalışma Kitabından Kopyalama

Tersine, bu kod, çalışma kitabını manuel olarak açmanıza gerek kalmadan kapalı bir Çalışma Kitabından bir Çalışma Sayfasını kopyalayacaktır.

123456789 Alt CopySheetFromClosedWB()Application.ScreenUpdating = YanlışKapalıKitabı ayarla = Çalışma Kitapları.Open("D:\Dropbox\excel\makaleler\example.xlsm")kapalıBook.Sheets("Sheet1").Copy Before:=ThisWorkbook.Sheets(1)kapalıBook.Close SaveChanges:=YanlışApplication.ScreenUpdating = DoğruAlt Bitiş

Bu örneklerin her ikisinde de işlemin arka planda çalışması için ScreenUpdating'i devre dışı bıraktığımıza dikkat edin.

Excel Sayfasını Birden Çok Çoğalt

Ayrıca bir Döngü kullanarak bir Excel Sayfasını birden çok kez çoğaltabilirsiniz.

1234567891011121314 Alt CopySheetMultipleTimes()Tamsayı Olarak Dim nDim i Tamsayı OlarakHatada Devam Et Sonrakin = InputBox("Kaç kopya yapmak istiyorsunuz?")n > 0 isei = 1'den n'yeActiveSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count)SonrakiBitirAlt Bitiş

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave