Mündəricat
Microsoft Excel VBA-da səhvlərin idarə edilməsi kritik vəzifələrdən biridir. Əgər siz kodlayıcısınızsa, mükəmməl proqram yaratmaq üçün səhvlərin idarə edilməsinin vacibliyini bilirsiniz. Bəyanatdakı hər hansı bir səhv VBA kodunuza bir çox cəhətdən mane ola bilər. Beləliklə, VBA kodunu icra edərkən bu səhvləri idarə etmək üçün ehtiyatlı olmalısınız. Excel-də VBA kodundan istifadə edərkən qarşılaşa biləcəyiniz bir çox iş vaxtı səhvləri var. Onlardan birini həll etmək üçün biz Sonrakı Xətada Davam Et ifadəsindən istifadə edirik.
Bu dərslikdə siz Excel-də Sonrakı Xətada Davam Etmək ifadəsindən istifadə etməyi öyrənəcəksiniz. VBA. Bu dərslik uyğun nümunələr və düzgün illüstrasiyalarla əsaslandırılacaq. Odur ki, bizimlə qalın.
Təcrübə İş Kitabını Yükləyin
VBA On Xəta Resume Next.xlsm
Excel-də Xəta İdarəetmə VBA
Microsoft Excel VBA ilə işləyərkən alt prosedurunuzda çoxlu səhvlərlə qarşılaşacaqsınız. VBA bəyanatı yerinə yetirə bilmədikdə, icra zamanı xətası atır.
Excel avtomatik olaraq bu səhvlərlə məşğul olur, beləliklə, işləmə zamanı xətası yarandıqda o, aşağıdakı kimi standart xəta mesajını göstərir:
İndi bəzi VBA ifadələri ilə bunlarla müxtəlif cür məşğul ola bilərsiniz. Onları sonrakı bölmələrdə müzakirə edəcəyəm.
Ətraflı oxuyun: #REF! Excel-də xəta (6 Həll)
VBA-da Xəta Hesabatlarında
İşləmə vaxtı xətalarını idarə etmək üçün biz Excel-ə On Error bəyanatı ilə göstəriş veririk. Qərar verirExcel-də NAME Xətası (10 Nümunə)
💬 Xatırlamalı Olanlar
✎ Xəta Onda Next Resume xətaları düzəltmir. O, əsasən xətaya məhəl qoymur və növbəti ifadəyə keçir.
✎ Excel icra zamanı xətalarını Err obyektində saxlayır və saxlayır. On Error Resume Next ifadəsindən istifadə etdiyimiz zaman o, Err obyektinin xassələrini təmizləyir.
✎ Siz Sonrakı Xətada Davam Et funksiyasını söndürə bilərsiniz. On Error GoTo 0 ifadəsini əlavə etməklə Excel-də VBA kodunuza ifadə edin.
Nəticə
Son nəticəyə gəlmək üçün ümid edirəm ki, bu dərslik sizə faydalı bir parça təqdim etdi. Excel VBA-da Sonrakı Xətada Resume -dən istifadə etmək üçün bilik. Bütün bu təlimatları öyrənib məlumat dəstinizə tətbiq etməyi tövsiyə edirəm. Təcrübə iş kitabını yükləyin və bunları özünüz sınayın. Həmçinin, şərh bölməsində rəy bildirməkdən çekinmeyin. Dəyərli rəyiniz bizi bu cür dərsliklər yaratmaq üçün motivasiya edir.
Excel ilə bağlı müxtəlif problemlər və həllər üçün Exceldemy.com vebsaytımızı yoxlamağı unutmayın.
Yeni metodları öyrənməyə və böyüməyə davam edin!
dərhal sonra hansı əməliyyatları etmək istəyirik. Əsasən, biz bu xətaları bu cür səhvlərin idarə edilməsi ilə aradan qaldırırıq.Biz Excel VBA-da üç növ On Error ifadəsindən(sintaksis) istifadə edirik.
- Xətada sətirdə
- Xəta Onda Növbəti Davam
- Xətada 0
Səhv tapdığınız zaman On Xəta əmrindən istifadə edin. Çünki On Error bəyannaməsindən istifadə etməsəniz, bu iş vaxtı xətaları fəlakətli olacaq. O, xəta xəbərdarlığını göstərəcək və icranı dayandıracaq.
Biz On Error ifadəsindən istifadə etdikdə, biz “aktivləşdirilmiş” xəta idarəedicisini işə salırıq. “Aktiv” səhv idarəedicisi xətaların idarə edilməsi əməliyyatına başlayan aktivləşdirilmiş işləyicidir. Səhv işləyicisi iştirak edərkən səhv yaranarsa, cari metodun səhv idarəçisi səhvə dözə bilməz. Bundan sonra nəzarət çağırış proseduruna qayıdır.
Əgər çağırış prosesində səhv idarəedicisi aktivləşdirilibsə, o, xətanı idarə etmək üçün işə salınır. Zəng sisteminizin səhv idarəedicisi müvafiq olaraq işə salınıbsa, idarəetmə aktiv, lakin qeyri-aktiv xəta idarəçisi tapana qədər əvvəlki zəng prosedurları vasitəsilə geri qaytarılır. Əgər o, boş işləməyə imkan verən hər hansı səhv idarəedicisini tapa bilmirsə, bu o deməkdir ki, xəta baş verən nöqtədə fəlakətlidir.
Hər dəfə xəta idarəedicisi çağırış proseduruna səlahiyyət verəndə, həmin prosedur mövcud proseduru təkmilləşdirir. İcra yenidən başlayırSəhv idarəedicisi hər hansı prosedurda səhvləri idarə edərkən Resume ifadəsi ilə seçilən anda mövcud prosedurdur.
VBA-da 'Sonrakı Xəta haqqında'
İndi, Sonrakı Xəta Resume ifadəsi VBA-ya səhvləri olan hər hansı kod sətirinə məhəl qoymamağı və dərhal aşağıdakı kod sətirinə keçməyi bildirir. Bundan sonra, Excel VBA kodları onlarda xəta olan sətirləri və ya sətirləri atlayacaq və aşağıdakı kod ardıcıllığına keçəcək.
Xətanı davam etdirin. Sonrakı bəyanatı həyata keçirməyə məcbur edir. iş vaxtı xətasına səbəb olan kodlar xəttini dərhal təqib edərək əmrlə davam edin. Bu bəyanat icra zamanı xətası olsa belə, icranı atlamağa icazə verir. Müəyyən bir kod xəttinin xəta yarada biləcəyini düşünürsünüzsə, prosedur daxilində başqa yerə qoymaq əvəzinə, səhvlərin idarə edilməsi qaydasını oraya yerləşdirin. Kodunuz başqa proseduru çağırdıqda, On Error Resume Next ifadəsi boş qalır. Beləliklə, bu rejimdə uyğunlaşdırılmış xətanın idarə edilməsinə ehtiyacınız olduqda, hər adlandırılmış nümunədə Sonrakı Xətanı davam etdirin əmrini işlətməlisiniz.
Kod sətirindən istifadə etməyiniz məqsədəuyğundur. Makronun çiçəklənməsi üçün lazım deyil atlaya bilərsiniz. Ancaq unutmayın ki, onu yanlış istifadə etsəniz, bu, zərərli ola bilər, çünki bu, gözlənilməz nəticələr verə bilər.
Yadda saxlayın:
On Xəta Resume Next ifadəsi yoxduricra zamanı səhvlərini düzəldin. O, əsasən, VB icranızın icra zamanı xətasını yaradan ifadədən davam edəcəyi səhvləri nəzərə almır.
Aşağıdakı koda nəzər salın:
8456
Biz 5-i bölməyə çalışdıq. 0 və 1 ilə. Kodu işə salaq. O, aşağıdakı çıxışı göstərəcək:
İş zamanı xətası yaradır. Biz ədədi 0-a bölə bilmərik. Kodda debug etdikdə aşağıdakıları görəcəksiniz:
VB proqramı xəta tapdıqda dərhal proseduru dayandırır. O, aşağıdakı sətri yerinə yetirmir.
İndi isə səhv bəyanatından əvvəl On Error Resume Next ifadəsini yerinə yetirək:
2656
Kodu işlədəndən sonra siz aşağıdakılara baxın:
Gördüyünüz kimi, VBA xəta yaradan sətirə məhəl qoymur və dərhal aşağıdakı kod sətirinə keçir. Bu yolla, Excel VBA-da xətanı idarə etmək üçün Xətanı davam etdirin ifadəsindən istifadə edə bilərsiniz.
VBA-da 'Sonrakı Xətada Davam Et' nümunələri
İçində aşağıdakı bölmələrdə sizə VBA istifadə edərək Excel iş vərəqinizə tətbiq edə biləcəyiniz Sonrakı Xətada Davam Et ifadəsinin iki nümunəsini təqdim edəcəyəm. Bütün bunları öyrənib iş dəftərinizdə tətbiq etməyi məsləhət görürəm. Bu, mütləq Excel biliklərinizi artıracaq.
1. İş vərəqlərini Gizlətmək üçün 'Sonrakı Xəta haqqında' Bəyanat
İndi bu nümunədə sizə VBA kodunu göstərəcəyəm.aktiv iş kitabınızın bütün iş vərəqlərini gizlədəcək.
Aşağıdakı skrinşota nəzər salın:
Burada dörd iş vərəqimiz var. Aşağıdakı VBA kodundan istifadə edərək onların hamısını gizlədəcəyik:
2186
Aşağıdakı kodu icra etdikdə aşağıdakı iş vaxtı xətasını görəcəksiniz:
Excel bu xətanı göstərir, çünki siz iş kitabındakı bütün vərəqləri gizlədə bilməzsiniz. Beləliklə, səhvə məhəl qoymamalısınız. Bunu etmək üçün, siz kod sətirinizdə On Error Resume Next ifadəsini tətbiq etməlisiniz.
3923
VBA kodunun icrasını tamamladıqdan sonra aşağıdakı çıxışı görəcəksiniz:
Sonda, icradan sonra heç bir səhv görməyəcəksiniz. Beləliklə, Xəta haqqında növbəti ifadəmiz VBA kodunda çox yaxşı işlədi.
Ətraflı oxuyun: Excel-dəki xətalar və onların mənası (15 müxtəlif xəta)
2. VBA-da 'Sonrakı Xətada Davam Et' ilə VLOOKUP funksiyası
Bu nümunədə mən VBA -də VLOOKUP funksiyasının nümunəsini göstərəcəyəm. İndi bu VBA koduna Sonrakı Xətada davam etmək ifadəsi də daxildir.
Aşağıdakı skrinşota nəzər salın:
Burada , bəzi insanların adlarını və yaşlarını görə bilərsiniz. Qonşu cədvəldə şəxsin adını və yaşını tapmaq üçün VLOOKUP dən istifadə edəcəyik.
Bunun üçün aşağıdakı kodu yazın:
1692
İndi makronu işə salın. . Aşağıdakı xətanı görəcəksiniz:
İndi, bu iş vaxtıdırsəhv. Niyə belə olur? Verilənlər toplusuna yenidən nəzər salın:
Gördüyünüz kimi, “Aaron” və “Emma” üçün heç bir məlumat yoxdur. Buna görə də o, yalnız ilk giriş üçün VLOOKUP həyata keçirir. Bundan sonra icranı dayandırır. İndi, əgər xətaya məhəl qoymamaq və qalan yaşları tapmağa davam etmək istəyirsinizsə, On Xətanı davam etdirin ifadəsindən istifadə edin.
7717
VBA kodunu işə saldıqdan sonra, aşağıdakı çıxış:
Gördüyünüz kimi, Səhv haqqında Sonrakı əmrini tətbiq etməklə, biz xətaya məhəl qoymadıq və qalan şəxsləri tapdıq. yaş. VBA kodumuz Aaron və Emma haqqında heç bir məlumat tapmadı. Buna görə də o, həmin dəyərlərə məhəl qoymadı və Excel iş vərəqindəki qalan dəyərləri qaytardı.
Daha çox oxuyun: [Düzeltildi] Excel Bu İş Vərəqində Bir və ya Daha çox Formula Referansları ilə Problem Tapdı
Excel VBA ilə 'Sonrakı Xətanı Davam Et'i söndürün
İndi siz VBA kodunun müəyyən bir seqmenti üçün səhvlərə məhəl qoymamaq istədiyiniz vəziyyətdə ola bilərsiniz. Unutmayın ki, əgər siz VBA kodunda On Error Resume Next ifadəsini istifadə etsəniz, bundan sonra bütün səhvləri atlayacaqdır. İndi onu söndürmək və başqa seqment üçün xətanın idarə edilməsini aktivləşdirmək istəyirsinizsə, On Error GoTo 0 istifadə edin. O, xətaların idarə edilməsini yenidən aktiv edəcək.
Ümumi istifadə:
Sub error_handling()
Səhvlərə məhəl qoymamaq üçün
Sonrakı Davam etmək Xətasında
// kod sətirləri
KiməXətanın idarə edilməsini yandırın
On Error GoTo 0
//kod sətirləri
Son alt
Buna nəzər salın aşağıdakı VBA kodu:
7764
Biz əvvəllər kodu VLOOKUP funksiyası üçün istifadə etdik. Burada sizi nümayiş etdirmək üçün əlavə kod yığını əlavə edildi. Kodumuz VLOOKUP həyata keçirərkən xətalara məhəl qoymayacaq, lakin o, On Error GoTo 0 ifadəsindən sonra xətanın idarə edilməsini aktivləşdirəcək.
Daha çox oxuyun: Excel VBA: “Sonrakı Xətanı davam etdirin” funksiyasını söndürün
VBA 'On Error GoTo'
Əvvəllər müzakirə etdim On Error metodundan istifadə edərək səhvləri idarə etmək. Bütün məqaləmiz Növbəti Xətanı davam etdirmək haqqında idi. İndi, həmçinin, növbəti bölmələrdə müzakirə edəcəyim iki növ xətanın idarə edilməsi var.
1. VBA On Error GoTo 0
The On Error Goto 0 kodlarınızda səhv idarəedicisi yoxdursa, ifadə Excel-in daxili parametridir. Bu, əsasən, o deməkdir ki, VBA On Error GoTo 0 ilə xəta tapdıqda, kodun işləməsini dayandıracaq və ənənəvi xəta mesajı qutusunu göstərəcək.
Xəta 0<2-ə keçid zamanı> ifadəsi əsasən indiki prosedurda səhvlərin idarə edilməsini söndürür. Metod 0 nömrəli sətiri özündə birləşdirsə belə, o, xətaların idarə olunması kodunun başlanğıcı kimi 0 sətrini təyin etmir.
Aşağıdakı koda nəzər salın:
7396
Bizdə var artıq bu kodu sizə göstərdi. Bu kod əsasən bütün iş vərəqlərini gizlədircari iş dəftərinizdə. İndi, həqiqətən, səhvi göstərmək üçün On Error GoTo 0 ilə əlavə kodum var. Kodu işlətsəniz, aşağıdakıları görəcəksiniz:
Bu xətanı göstərir, çünki aktiv iş kitabında eyni adlı vərəqlər ola bilməz.
2. VBA On Error GoTo line
İndi siz həmçinin Excel-ə On Error GoTo line istifadə edərək hər hansı bir xəta aşkar edərsə, kodun başqa seqmentini işlətməyi də göstəriş verə bilərsiniz. O, Excel-ə xəta tapdıqdan sonra nəyisə yerinə yetirməyi əmr edir.
Sətt arqumenti istənilən sətir etiketi və ya sətir nömrəsidir. Əgər kodumuz hər hansı bir işləmə zamanı xətasına səbəb olarsa, o, xətə keçəcək və icra zamanı xəta idarəçisinin aktiv olmasına səbəb olacaq. Unutmayın ki, müəyyən edilmiş sətiriniz Xəta haqqında bəyanat kimi dəqiq prosedurda olmalıdır; əks halda kompilyasiya xətasına səbəb olacaq.
Aşağıdakı koda nəzər salın:
8935
Siz əvvəlki misalda kodu gördünüz. Biz On Error GoTo 0 istifadə etdiyimiz zaman xətaya səbəb oldu. Lakin burada biz bunu On Error GoTo line ifadəsi ilə əvəz etdik.
İndi kodu işə salın və aşağıdakıları görəcəksiniz:
Gördüyünüz kimi, o, bizə standart xəta dialoq qutusunu göstərmir. Bunun əvəzinə, error_handler seqmentində yaratdığımız fərdi mesaj qutusunu göstərir. Excel hər hansı bir səhv tapdıqda, error_handler seqmentinə keçir və bizə mesaj qutusunu göstərir.
Biz həmçinin prosedurda Çıxış Alt -dən istifadə etdik.“ VLOOKUP “ adlı vərəq yoxdursa, VBA kodumuz aktiv vərəqin adını dəyişəcək. Sonra, biz burada icranı bitirməliyik, çünki səhv idarəçisinə keçməyə və mesaj qutusunu göstərməyə ehtiyac yoxdur.
VBA 'On Error' Excel-də işləmir
Bəzən, nə qədər çalışsan da, On Error metodu işləməyəcək. Əvvəllər səhvləri idarə etmək üçün On Error metodunu tətbiq etdik. Lakin, bəzən hətta On Error Resume Next və ya On Error GoTo 0 istifadə etsəniz belə səhvlər göstərəcək. Kodunuzda düzəltməli olduğunuz bir neçə səbəb ola bilər. Bunu sizə göstərmək fikrində deyiləm.
VBA ' Xəta haqqında' Excel-də işləməməsinin əsas səbəbi Excel-də "Bütün Xətaları Qırmaq" seçimini aktiv etməkdir.
Bunu həll etmək üçün bu addımları yerinə yetirin:
📌 Addımlar
- İlk olaraq klaviaturanızda Alt+F11 düymələrini basın. VBA redaktorunu açın.
- İndi Alətlər > Seçimlər.
- Bundan sonra Seçimlər dialoqunda Ümumi tabına klikləyin. qutusu.
- Burada görə bilərsiniz, “ Bütün Səhvləri Qırmaq ” artıq yoxlanılıb. O, əsasən səhvləri idarə etməyinizə mane olur.
- Onu dəyişdirmək üçün “ İşlənə bilməyən xətaları qırmaq ” seçimini seçin və OK düyməsini basın.
Ümid edirəm ki, bu, Excel-də işləməyən VBA "Xəta haqqında" probleminizi həll edəcək.
Ətraflı oxuyun: Səbəblər və Düzəlişlər