Excel'de vba kullanarak bir sayfayı nasıl yeniden adlandırabilirim?
Çalışma kitabına yeni bir sayfa eklediğinizde, bunu adlandırma seçeneğiniz vardır. Ancak çalışma sayfasının name özelliğini kullanarak istediğiniz zaman yeniden adlandırabilirsiniz. Bu öğreticide, VBA kodunu kullanarak bir sayfayı veya birden çok sayfayı yeniden adlandırmanın farklı yollarına bakacağız.
VBA kodunu kullanarak bir sayfayı yeniden adlandırma adımları
- Öncelikle, çalışma sayfası nesnesini kullanarak yeniden adlandırmak istediğiniz sayfayı tanımlayın.
- Bundan sonra değiştirmek istediğiniz name özelliğine erişmek için (.Name) kullanmanız gerekir.
- Ardından, VBA’ya sayfayı yeniden adlandırmak için kullanmak istediğiniz değeri belirtmek üzere eşittir işareti yazın.
- Sonunda kullanmak istediğiniz sayfanın adını yazın.
Yararlı bağlantılar: Makro çalıştırma – Makro kaydedici – Visual Basic Düzenleyici – Kişisel Makrolar El Kitabı
Etkin sayfayı yeniden adlandır
Etkin sayfayı yeniden adlandırmak istiyorsanız bu durumda sayfa adını ayarlamanıza gerek yoktur; bunun yerine VBA’ya şu anda etkin sayfaya başvurmasını söyleyen ActiveSheet nesnesini kullanmanız gerekir. İşte kod.
Activesheet.Name = "mySheet"
Not: Bir sayfayı yeniden adlandırmak için onu etkinleştirmenize gerek yoktur.
Sayfa numarasını kullanarak bir sayfayı yeniden adlandırın
Bildiğiniz gibi her sayfanın çalışma kitabındaki konumuna göre bir numarası vardır. Diyelim ki beşinci numaradaki sayfanızı yeniden adlandırmak istiyorsunuz, kod şöyle olacaktır.
Sheets(5).Name = "mySheet5"
Yukarıdaki makroyu çalıştırdığınızda beşinci numaradaki sayfayı yeniden adlandırır.
Yeniden adlandırmadan önce sayfanın mevcut olup olmadığını kontrol edin
Var olmayan bir çalışma sayfasını yeniden adlandırmaya çalışırsanız VBA size aşağıdaki gibi bir hata gösterecektir.
Bu sorunun çözümü, tanımladığınız sayfayı bulmak ve ardından bu sayfayı yeniden adlandırmak için tüm çalışma sayfalarında dolaşabilen FOR EACH kullanan aşağıdaki koddur.
Sub check_sheet_rename() Dim ws As Worksheet Dim mySheet As String Dim SheetName As String mySheet = InputBox("enter the name of the sheet that you want to rename.") SheetName = InputBox("Enter new name for the sheet.") For Each ws In ThisWorkbook.Worksheets If mySheet = ws.Name Then ws.Name = SheetName End If Next ws End Sub
Bir hücrenin veya aralığın değerini kullanarak sayfayı yeniden adlandırın
Ayrıca bir hücrenin değerini alarak bir sayfayı yeniden adlandırabilirsiniz. Değerin A1 hücresinde olduğunu varsayalım.
Sheets("Sheet1").name = Range("A1").Value
Ancak diyelim ki birden fazla sayfayı bir hücre aralığındaki değerlere göre adlandırmak istiyorsunuz. Bu durumda aşağıdaki gibi bir koda sahip olmanız gerekir.
Sub vba_sheet_rename_multiple() Dim wsCount As Long Dim rCount As Long Dim ws As Worksheet Dim name As Range Dim i As Long wsCount = ThisWorkbook.Worksheets.Count rCount = Range("A1:A10").Rows.Count 'Checks if the count of the names provided is less _ or more than the sheets in the workbook If wsCount <> rCount Then MsgBox "There's some problem with the names provided." Exit Sub Else 'Check if any of the cells in the name range is empty. For Each name In Range("A1:A10") If IsEmpty(name) = True Then i = i + 1 End If Next name If i > 0 Then MsgBox "There's is a blank cell in the names range." Exit Sub End If End If 'rename each sheet using the value from the range cell by cell. i = 1 For Each ws In ThisWorkbook.Worksheets ws.name = Range("A1:A10").Cells(i, 1).Value i = 1 + i Next ws End Sub
Bu VBA kodunu çalıştırdığınızda, öncelikle aralıktaki hücrelerin çalışma kitabındaki sayfa sayısına eşit olup olmadığını kontrol eder. Bundan sonra belirttiğiniz aralıktaki tüm hücrelerin değerlerinin olup olmadığını kontrol edecektir. Ve sonunda tüm sayfaları bu adları kullanarak yeniden adlandırın.
IF THEN ELSE kullanarak iki koşulu kontrol edecek ve ardından tüm sayfaları yeniden adlandıracaktır.