VBA Copy Çalışma Sayfası - Worksheet.Copy Nasıl Kullanılır?

Excel VBA Kopyalama Çalışma Sayfası

Bazen belirli bir hücre aralığını bir çalışma sayfasından diğerine veya aynı çalışma sayfasının kendisine kopyalamamız gerekebilir. Bazı durumlarda, çalışma sayfasının tamamını yeni bir çalışma sayfasına kopyalamamız gerekebilir. Bir dizi hücreyi kopyalamaya aşina olabilirsiniz, ancak VBA kullanarak tüm çalışma sayfasının kendisini kopyalamaya ne dersiniz? Bu makalede, çalışma sayfasının VBA'daki başka bir çalışma kitabına nasıl kopyalanacağına dair ayrıntılı bir açıklama vereceğiz.

Çalışma Sayfası. VBA'da Kopyalama Yöntemi

İlk olarak, Çalışma Sayfası Kopyalama yönteminin sözdizimine bir göz atın.

Çalışma sayfası (). Kopyala (Önce, Sonra)

Kopyalama yönteminde önce ve sonra iki argüman bulunur; bunların ikisi de isteğe bağlıdır.

  1. Önce: Kopyaladığımız hedeflenen çalışma sayfası. Bunu belirtirseniz, Sonra bağımsız değişkenini kullanamazsınız .
  2. Sonra: Kopyaladığımız hedeflenen çalışma sayfası. Bunu belirtirseniz, Önce bağımsız değişkenini kullanamazsınız .

Her ikisi de isteğe bağlı bağımsız değişkenler olduğundan, boş bırakırsanız, hedeflenen çalışma sayfası yeni bir çalışma kitabına kopyalanacaktır, Microsoft Excel otomatik olarak yeni bir çalışma kitabı oluşturur.

Şimdi örnekler bölümünde aynı örnekleri göreceğiz.

VBA'da Çalışma Sayfası Kopyalama Örnekleri

Örnek 1

Örneğin, "Ocak" adlı çalışma sayfasındaki aşağıdaki verilere bakın.

Yukarıdaki verilere “Ocak” adlı çalışma sayfasında sahibiz .

  • Bu nedenle, yukarıdaki çalışma sayfasını “ Sayfa1 ” adlı çalışma sayfasından sonra kopyalamamız gerekiyor . İlk olarak, çalışma sayfaları nesnesini kullanarak çalışma sayfasına bakın.

Kod:

Alt Çalışma Sayfası_Copy_Example1 () Çalışma Sayfaları ("Ocak") Son Alt
  • Ardından, " Kopyala " yöntemini girin .

Kod:

Sub Worksheet_Copy_Example1 () Worksheets ("January"). Copy End Sub
  • Yukarıda yazmaya başladığınızda görebileceğiniz gibi, çalışma sayfaları nesnesi için IntelliSense listesini göremiyoruz, bu yeni başlayanlar için doğrudan ÇALIŞMA SAYFALARI nesnesini kullanıyorlarsa önemli sorunlardan biridir, ancak değişkenler kullanılarak bu ortadan kaldırılabilir, bu nedenle değişken " Çalışma Sayfası " olarak.

Kod:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet End Sub
  • Şimdi bu değişken için “ Ocak ” çalışma sayfasının referansını ayarlayın .

Kod:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet Set Ws = Worksheets ("Ocak") End Sub
  • Böylece, şimdi " Ws " değişkenini kullanarak, " Ocak " adlı çalışma sayfasına kolayca başvurabiliriz . Bu yüzden " Ws " değişken adını girin ve " Kopyala " yöntemini seçin.

Değişken bildirimi sayesinde çalışma sayfası nesnelerinin tüm özelliklerini ve yöntemlerini gösteren IntelliSense listesini görebiliriz.

  • “Seç Kopyala ” yöntemi ve biz “argümanlarını görebilirsiniz Kopya ” yöntemiyle.
  • Çalışma sayfasını “ Sayfa1 ” çalışma sayfasından sonra kopyalamamız gerektiğinden , önce aşağıdaki gibi argüman adını girerek “ Sonra ” argümanına erişin .

Argüman vurgulandıktan sonra argüman adını " tanım gereği eşit " sembolüyle (: =)

  • Şimdi " E-Tablolar " nesnesini kullanarak sayfa adını girin .

Kod:

Sub Worksheet_Copy_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Ocak") Ws.Copy After: = Sheets ("Sheet1") End Sub
  • İşimiz bitti. Bu, " Sayfa1 " çalışma sayfasından sonraki " Ocak " çalışma sayfasını kopyalayacaktır .

İşte Ocak çalışma sayfasını “Sayfa1” in sağına kopyaladık. Buradaki varsayılan şeylerden biri, çalışma sayfasının adının, parantez içindeki çalışma sayfasının sayısal sayısıyla kopyalanan sayfa ile aynı olmasıdır, bu durumda "(2)" dir.

  • Çalışma sayfası adını değiştirmek için aşağıdaki kod parçasını yukarıdaki koda ekleyin.
  • So the overall code is below.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets("Sheet1") ActiveSheet.Name = “New Copied Sheet” End Sub
  • Now run the code and see what happens.

Example #2

Similarly, if you want to copy the worksheet “Sheet1” before the worksheet “January” uses the below code.

Code:

Sub Worksheet_Copy_Example2() Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") Ws.Copy Before:=Sheets("January") ActiveSheet.Name = "New Sheet1" End Sub
  • So this will create a sheet-like the below.

Example #3

Similarly, if you want to copy the worksheet after the last worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example3() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Last Sheet" End Sub

Output:

The only change we made is we have used “Sheets. Count” method to count how many sheets are there in the workbook.

Example #4

Similarly, if you want to copy the worksheet before the first worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example4() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(1) ActiveSheet.Name = "First Sheet" End Sub

Output:

In this case, we have used “Sheets(1)” so this will place the worksheet copied before the first worksheet of the workbook.

Things to Remember

  • Suppose you don’t use either Before & After argument of the Worksheet. Copy worksheets will be copied to the new workbook altogether.
  • Varsayılan kopyalanan çalışma sayfası adı, ardından kopyalanan çalışma sayfasının sayısı ile aynı olacaktır.

Ilginç makaleler...