VBA'daki GoTo Beyanı, bir kod satırına atlamanıza izin verir.
İlk önce kodunuzun herhangi bir yerinde bir satır etiketi oluşturun:
1 | Atlamak: |
Ardından satır etiketine atlamak için “Git” ifadesine ekleyin
1 | Git Atla |
Örneklere Git
Bu örnek yılı test ediyor. Yıl 2022 veya daha sonraysa, Satırı Atla etiketine gidecektir. Bu, belirli koşullar karşılanırsa kodu atlamanıza olanak tanır.
123456789101112 | Alt GoTo_Example()Dim yıl Tamsayı olarakyıl = 2019Yıl >= 2019 ise, Git Atla'Yıllar için İşlem Verileri < 2022MsgBox "Yıl 2022'den Önce"Atlamak:Alt Bitiş |
Birden Çok Satır Etiketine Git
İlgili kod satırlarına atlamak için GoTo deyimlerini de kullanabilirsiniz. Hangi yıla göre farklı kod konumlarına gitmek için önceki örneğimizi ayarlayalım:
1234567891011121314151617181920212223242526272829303132 | Alt GoTo_Statement()Dim yıl Tamsayı olarakyıl = 2019Yıl = 2019 ise2019 yılına gitElseIf yıl = 2010 O zaman2020 yılına gitBaşka2021 yılına gitBitiryıl2019:'Süreç 2022MsgBox "Yıl 2022"EndProc'a Git2020 yılı:'Süreç 2022MsgBox "Yıl 2022"EndProc'a Gityıl2021:'Süreç 2022+MsgBox "Yıl 2022+"EndProc:Alt Bitiş |
Her satır etiketinden önce “GoTo EndProc”a dikkat edin. Bu kod satırını, ilgili “Git” tarafından erişilmedikçe bu kod bölümlerinin atlanması için ekledik.
GoTo Hata İşleyici Prosedürün Sonu
Şimdi hata varsa işlemin sonuna gitmek için Error Handling'i kullanalım.
123456789101112 | Alt GoTo_OnError ()Dim i Tamsayı OlarakGoTo EndProc Hatasındaben = 5 / 0MsgBox iEndProc:Alt Bitiş |
Tekrar Koduna Git
Son örneğimiz, bazı kodları tekrarlamak için GoTo Bildirimini kullanacak.
Aşağıda, kullanıcının uyarıyı kabul ettiğini doğrulamak için bir Evet / Hayır Mesaj Kutusu (Daha fazla bilgi için tıklayın) kullanıyoruz. 'Hayır'ı tıklarlarsa, 'Evet'i tıklatana kadar mesaj kutusu tekrar görüntülenecektir (aşağıdaki GIF'e bakın).
1234567891011 | Alt GoTo_YesNoMsgBox()Tekrar Mesajı:Dim cevap Tamsayı olarakanswer = MsgBox("UYARI: Bu dosya Salt Okunur bir dosya olarak açılmıştır, yani yaptığınız değişiklikler Yazma Erişim haklarına sahip olmadıkça/olmadıkça kaydedilmeyecektir." & _Chr(13) & Chr(13) & "Bu dosyada çalışmadan önce bir kopyasını kaydetmek için Dosya, Farklı Kaydet'i seçin." & vbNewLine & vbNewLine & "Anlıyor musunuz?", vbExclamation + vbYesNo, "UYARI!")Cevap = vbNo ise, TekrarlaMsg'ye Git 'Kullanıcı "Evet" i tıklayana kadar tekrarlayınAlt Bitiş |
VBA Access VBA'da Bir Satır Etiketine Git
Yukarıdaki örneklerin tümü, Access VBA'da Excel VBA'dakiyle tamamen aynı şekilde çalışır.
1234567 | Alt TestGoTo()Hatada GoTo sona eriyorDoCmd.OpenForm "FrmClients"Alt Çıkışbitirme:MsgBox "Form açılamıyor"Alt Bitiş |