Vba kodunu kullanarak yeni bir sayfa nasıl oluşturulur?
VBA öğrenmeye başladığınızda yapabileceğiniz en harika şeylerden biri, çalışma kitabına yeni bir çalışma sayfası eklemek için VBA kodu yazmaktır.
Yeni bir çalışma sayfası eklemek için zaten bir kısayol tuşu var veya normal seçeneği de kullanabilirsiniz, ancak VBA kodunu kullanmanın avantajı, tek tıklamayla birden fazla çalışma sayfası ekleyebilmeniz ve nereye eklemek istediğinizi de tanımlayabilmenizdir. BT.
Bunun için Sheets.Add yöntemini kullanmanız gerekiyor ve bu yazımızda çalışma kitabına bir veya daha fazla çalışma sayfası eklemek için nasıl kullanılacağını öğreneceğiz.
E-Tablolar.Add yöntemi
Sheets.Add ([Before], [After], [Count], [Type])
- Önce: Bir sayfanın önüne yeni bir sayfa eklemek için.
- Sonra: Yeni sayfayı bir sayfanın önüne eklemek için.
- Sayım: eklenecek sayfa sayısı.
- Tür: Eklemek istediğiniz sayfanın türü ( LINK )
Çalışma kitabına yeni bir sayfa eklemek için VBA kodunu yazın
Visual Basic düzenleyicisini açın ve şu adımları izleyin.
- Öncelikle Sheets.Add metoduna girmeniz gerekiyor.
- Daha sonra, yeni sayfayı nereye ekleyeceğinizi (Önce veya Sonra) tanımlamanız gerekir.
- Bir sonraki şey çalışma sayfası sayısını girmektir.
- Sonuçta, sayfa türü.
VBA kodunu kullanarak çalışma kitabına yeni sayfalar eklemenin farklı yolları
Aşağıda çalışma kitabına yeni bir sayfa eklemenin farklı yolları verilmiştir:
1. Tek bir sayfa ekleyin
Tek sayfa eklemek için herhangi bir argüman belirtmediğiniz aşağıdaki kodu kullanabilirsiniz.
Sub SheetAddExample1() ActiveWorkbook.Sheets.Add End Sub
Bu kod, Excel’e etkin çalışma kitabına bir sayfa eklemesini söyler, ancak argümanınız olmadığından varsayılanları kullanır ve etkin sayfanın önüne bir çalışma sayfası (xlWorksheet) ekler.
İşte bunu yazmanın başka bir yolu, aşağıdaki koda bakın.
Sub SheetAddExample2() Sheets.Add End Sub
Zaten aktif çalışma kitabında olduğunuz için aşağıdaki kodu da kullanabilirsiniz. O da aynı şeyi yapıyor.
2. Birden fazla sayfa ekleyin
Aynı anda birden fazla sayfa eklemek için COUNT bağımsız değişkenini eklemek istediğiniz sayfa sayısına göre ayarlamanız yeterlidir.
Sub AddSheets3() Sheets.Add Count:=5 End Sub
Artık ayarladığınız sayfa sayısı 5’tir, yani bu kodu çalıştırdığınızda, beş yeni sayfayı anında çalışma kitabına ekler.
3. Adı olan bir sayfa ekleyin
Sayfayı ekledikten sonra yeniden adlandırmak isterseniz aşağıdaki kodu kullanabilirsiniz:
Sub AddNewSheetswithNameExample1() Sheets.Add.Name = "myNewSHeet" End Sub
Yukarıdaki kodda, bir sayfanın adını belirtmenize yardımcı olan ad ( LINK ) nesnesini kullandık.
4. Bir hücreden bir ad içeren bir sayfa ekleyin
Ayrıca, sayfa adı olarak kullanılacak değeri bir hücreden de alabilirsiniz.
Sub AddNewSheetswithNameExample2() Sheets.Add.Name = Range("A1") End Sub
Yukarıdaki kodda, yeni sayfanın adını almak için A1 hücresi kullanıldı.
5. Belirli bir sayfanın sonrasına/öncesine bir sayfa ekleyin
Bu argümanlar zaten Sheets.Add’de mevcut olduğundan, öncesine veya sonrasına yeni bir sayfa eklenecek sayfayı belirtebilirsiniz.
Sub AddSheetsExample5() Sheets.Add Before:=Worksheets("mySheet") Sheets.Add After:=Worksheets("mySheet") End Sub
Şimdi yukarıdaki kodda, Sheet.Add yöntemindeki bir argümandan önce ve sonra kullandığınız iki satır kod var. Yani bu kodu çalıştırdığınızda, “mySheet”ten önce ve sonra olmak üzere iki sayfa eklenir.
6. Başa yeni bir sayfa ekleyin
Kullanmadan önce bağımsız değişkenini kullanarak, çalışma kitabınızdaki sayfaların başına da bir sayfa ekleyebilirsiniz.
Yani temel olarak yapacağımız şey, sayfa adı yerine sayfa numarasını belirtmek olacaktır.
Sub AddSheetsExample6() Sheets.Add Before:=Sheets(1) End Sub
Yukarıdaki kodda, VBA’ya sayfayı tüm çalışma sayfalarında ilk konumdaki sayfanın önüne eklemesini söyleyen sayfa numarasını (1) kullandınız. Bu şekilde her zaman yeni sayfayı en başa ekleyecektir.
7. Sona yeni bir sayfa ekleyin (son sayfadan sonra)
Sonuna yeni bir sayfa eklemek için kodu farklı bir şekilde yazmanız gerekir. Bunun için çalışma kitabında kaç sayfa olduğunu bilmeniz gerekir, böylece sonuna yeni bir sayfa ekleyebilirsiniz.
Sub AddSheetsExample8() Sheets.Add After:=Sheets(Sheets.Count) End Sub
Yukarıdaki kodda Sheet.Count, çalışma kitabındaki sayfa sayısını döndürür ve after argümanını ayarladığınız için yeni sayfayı çalışma kitabındaki son sayfanın sonrasına ekler.
8. Birden Çok Sayfa Ekleyin ve Aralık Adlarını Kullanın
Aşağıdaki kod A1:A7 aralığındaki satırları sayar. Bundan sonra aralık sayısına göre sayfa eklemek için döngü yapar ve eklerken sayfayı adlandırmak için aralık değerlerini kullanır.
Sub AddSheetsExample9() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A7").Cells(i, 1).Value Worksheets.Add().Name = sheet_name Next i End Sub
Ancak yukarıdaki kodla eklemek istediğiniz sayfanın adının zaten mevcut olması veya ad aralığında boş bir hücrenizin olması mümkündür.
Bu durumda aynı isimli sayfanın mevcut olup olmadığını, sayfa adını almak istediğiniz hücrenin boş olup olmadığını kontrol edebilecek bir kod yazmanız gerekmektedir.
Her iki koşul da yerine getirilirse yeni bir sayfa eklenmelidir. Bunu iki adımda anlatayım:
Öncelikle aynı isimde bir sayfanın mevcut olup olmadığını kontrol etmek için Excel kullanıcı tanımlı bir fonksiyon yazmanız gerekir.
Function SheetCheck(sheet_name As String) As Boolean Dim ws As Worksheet SheetCheck = False For Each ws In ThisWorkbook.Worksheets If ws.Name = sheet_name Then SheetCheck = True End If Next End Function
İkinci olarak bu fonksiyonu kullanarak bir kod yazmanız gerekiyor ve bu kodun aynı zamanda isim hücresinin boş olup olmadığını da kontrol etmesi gerekiyor.
Sub AddMultipleSheet2() Dim sheets_count As Integer Dim sheet_name As String Dim i As Integer sheet_count = Range("A1:A7").Rows.Count For i = 1 To sheet_count sheet_name = Sheets("mySheet").Range("A1:A10").Cells(i, 1).Value If SheetCheck(sheet_name) = False And sheet_name <> "" Then Worksheets.Add().Name = sheet_name End If Next i End Sub
Şimdi yukarıdaki kodda VBA IF ifadesini kullandınız ve bu ifadede sayfa adını kontrol eden sayfa kontrol işlevine sahipsiniz ve ardından ad hücresinin boş bir değere sahip olup olmadığını kontrol edecek bir koşulunuz var.