Microsoft Excel'de VBA kullanan bir çalışma kitabında bir sayfa olup olmadığını belirleme

İçindekiler

Bir çalışma kitabında oluşturduğunuz veya VBA makrosu / kodunda sildiğiniz bir çalışma sayfasının var olup olmadığını kontrol etmeniz gereken bir zaman olabilir. Bunu bir fonksiyon / makro kullanarak kolayca yapabiliriz. Bir çalışma sayfasının var olup olmadığını kontrol etmenin birden çok yolu vardır.

Bu makalede aşağıdaki yolları ele alacağız:

1. UDF olarak bilinen Kullanıcı Tanımlı İşlev
2. Mesaj kutusu aracılığıyla alt rutin

İlk seçenek: Kullanıcı Tanımlı İşlev

Aşağıdaki anlık görüntü birkaç sayfa adı içeriyor ve A sütunundaki sayfa adlarının olup olmadığını kontrol edeceğiz.

Belirli bir sayfanın olup olmadığını bulmak için VB düzenleyiciyi başlatmak için aşağıdaki adımları izlememiz gerekir.

  • Geliştirici sekmesine tıklayın
  • Kod grubundan Visual Basic'i seçin

  • Aşağıdaki kodu standart modüle kopyalayın
Seçenek Explicit Function WorksheetExists(ByVal WorksheetName As String) As Boolean Dim Sht As Worksheet BuWorkbook'taki Her Sht için.Worksheets Eğer Application.Proper(Sht.Name) = Application.Proper(WorksheetName) Then WorksheetExists = True Exit Function Eğer Sonraki Sht Çalışma SayfasıVarsa Sonlandır = Yanlış Bitiş Fonksiyonu 

  • Kontrol etmek için B2 hücresinde UDF kullanacağız.
  • =Çalışma SayfasıVar(A2)

  • Yukarıdaki resimde, örnek çalışma kitabımızda “MasterSheet” yok; dolayısıyla formül Yanlış olarak cevap verdi

Kod Açıklaması:

Bu fonksiyon, diğer aktiviteleri gerçekleştiren makrodan “WorksheetName” değerini alır. Kodunuza göre değiştirmeniz gerekirse, yapabilirsiniz.

ThisWorkbook.Worksheets'teki Her Şey İçin ve Sonraki Bölüm sırasıyla döngünün başlangıç ​​ve bitiş parçalarıdır.

Sonra Application.Proper(Sht.Name) = Application.Proper(WorksheetName) ise

WorksheetExists = Doğru

Sayfa adının, ana makrodan geçirilen Sayfa adıyla eşleşip eşleşmediğini kontrol eder. Varsa, WorksheetExists True olur ve fonksiyondan çıkabiliriz. Aksi takdirde, WorksheetExists = False, ana makroya geri döndürülür. Döngü, tüm sayfalar kontrol edilene kadar 1. sayfadan diğerine gider.

İkinci Seçenek: Mesaj kutusu aracılığıyla alt rutin

Bir UDF çağıran normal bir alt programımız olabilir ve belirtilen sayfa bulunursa, mesaj kutusu 'sayfa var' görüntüleyecektir; bulunamazsa, msgbox açılır, 'sayfa bulunamadı'.

Kontrol etmek için standart modülde aşağıdaki kodu kopyalayacağız:

İşlev Çalışma SayfasıExists2(Çalışma SayfasıAdı Dize Olarak, İsteğe Bağlı wb Çalışma Kitabı Olarak) Boolean Olarak wb Hiçbir Şey Değilse Ayarla wb = Hatada wb'li Bu Çalışma Kitabı Sonraki Çalışma Sayfasına Devam Et2 = (.Sayfalar(Çalışma SayfasıAdı).Ad = Çalışma SayfasıAdı) Hatada Git 0 Bitiş İşleviyle Bitir Sub FindSheet() Eğer WorksheetExists2("Sheet1") ise MsgBox "Sayfa1 bu çalışma kitabında" Başka MsgBox "Hata: Sayfa yok" End If End Sub 

“FindSheet” makrosunu çalıştırdıktan sonra, eğer sayfa varsa aşağıdaki mesaj kutusunu alacağız:

Sayfa yoksa, aşağıdaki mesaj kutusunu alacağız:

Benzer şekilde, sayfanın var olup olmadığını kontrol eden ve ardından belirli eylemleri gerçekleştiren basit bir EĞER döngüsüne sahip olabiliriz.

Sub test() Dim ws ThisWorkbook'taki Her ws için Çalışma Sayfası.Çalışma Sayfaları Eğer ws.Name "Main" ise ws.Range("A1").Value = ws.Name Diğer ws.Range("A1").Value = " ANA GİRİŞ SAYFASI" End If Next ws End Sub 

  • Yukarıdaki makroyu test etmek için “Ana” bir sayfa adı oluşturmamız gerekiyor. Bu makro çok basit
  • Çalışma kitabındaki her çalışma sayfasında dolaşır
  • Ardından, çalışma sayfası adının MAIN olup olmadığını kontrol eder.
  • ANA ise, o sayfanın A1'inde “ANA GİRİŞ SAYFASI” gibi bir metin görüntüler, aksi takdirde sayfanın adını A1 hücresinde görüntüler.

  • Bu, sayfanın var olup olmadığını kontrol etmenin başka bir yoludur. Varsa A eylemini, yoksa B eylemini gerçekleştirin.

Çözüm: Çalışma kitabımızda bir sayfa olup olmadığını belirleyebiliriz; UDF'yi veya alt yordamı bize göre kullanabiliriz.

Bloglarımızı beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.

Sizden haber almayı çok isteriz, işimizi nasıl iyileştirebileceğimizi, tamamlayabileceğimizi veya yenileyebileceğimizi ve sizin için daha iyi hale getirebileceğimizi bize bildirin. Bize e-posta sitesinde yazın

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

wave wave wave wave wave