Açıq
Yaxın

VBA excel nümunəsini seçin. Visual Basic proqramlaşdırma dili. Filial proqramlaşdırması. VBA Select Case Statement Sintaksis

VBA-da çoxlu sayda müxtəlif kod filiallarından seçim etməli olduğunuz hallarda istifadə üçün şərti keçid operatoru var: operator seçinCase(birdən çox seçim strukturunu həyata keçirmək çox rahatdır). Əgər, lakin kodu yazanla bu kodu oxuyan üçün daha başa düşüləndir. Bu operator operatordan daha səmərəlidir ƏgərSonraBaşqa.

Açar sözlər seçinCase bir çox operatorla istifadə olunur Case, burada hər bir operator Case başqa şərtin baş verməsini yoxlayır və budaqlardan yalnız biri yerinə yetirilir Case.Filili Case bir, daha çox və ya heç bir VBA ifadəsi ehtiva edə bilər.

Case seçin– ifadənin qiymətindən asılı olaraq bir neçə ifadə blokundan birini yerinə yetirən idarəetmə ifadəsi.

seçinCase seçim_ifadəsi

[ Caseİfadə_siyahısı_1

[Operator_Block_1]

[Case ifadə_siyahısı_2 ]

[Operator_block_2]]

……………………………………………………………………………

[Dava Else

[Operator_Block_N]]

EndSseç

– Seçim_ifadəsi – istənilən ədədi və ya simvolik ifadə;

– İfadə_siyahısı – hər bir siyahı vergüllə ayrılmış məntiqi ifadələrin siyahısıdır; seçim_ifadəsi ilə eyni tipə malikdir;

– Statement_block – istənilən sayda VBA ifadələrini ehtiva edir.

Bəyanatı icra edərkən seçinCase VBA əvvəlcə Seçim_İfadəsini qiymətləndirir, və sonra həmin ifadənin nəticəsini hər İfadə_Siyahısında sadalanan hər ifadə ilə müqayisə edir . Əgər Seçim_İfadəsi ilə təmsil olunan dəyər İfadə_Siyahısındakı ifadəyə uyğun gəlir biri üçün Case,VBA bu ifadə üçün StatementBlock-u icra edir Case.Seçim_İfadəsinin dəyəri olarsa birdən çox operatora uyğun gəlir Case,VBA yalnız ifadələri icra edir Birincidə uyğun cümlə Case.Çox vaxt seçim_ifadəsi məntiqi ifadədən çox, sadəcə olaraq tək dəyişənin, riyazi və ya ədədi adıdır. İfadə_siyahısındakı ifadələr - Bunlar adətən məntiqi ifadələrdir.

İlk uyğun gələn ifadələrdən sonra ifadə icrası tamamlandı Case VBA kodu icra etməyə davam edir sonra ilk açıqlamadan açar sözlər Sonseçin, sonunu göstərir seçinCase.

Əgər Seçim_İfadəsinin dəyəri heç birinə uyğun gəlmir Case, və isteğe bağlıdır CaseBaşqa mövcud olduqda, VBA Statement_Block_N ilə təmsil olunan ifadələri yerinə yetirir sonra operatora keçməzdən əvvəl seçinCase. Operator bloku Dava Else yalnız Seçim_İfadəsi şərtlərin heç birini təmin etmədikdə yerinə yetirilir Case. Adətən arzuolunmaz dəyərləri idarə etmək üçün istifadə olunur. Operatorun hərəkəti seçinCaseŞəkildə göstərilən blok diaqramı ilə təsvir edilmişdir. 5.

Şəkil 5. Dizaynın blok diaqramı seçinCase

İfadə Siyahısı elementləri aşağıdakı üç formadan birinə malik olmalıdır:

İfadə_1, İfadə_2, …, İfadə_N

İfadə Toİfadə

IsƏməliyyatla ifadə

– İfadə_ – seçim ifadəsi ilə eyni tipli istənilən ədədi, simvolik və ya məntiqi ifadə;

– Əməliyyatla ifadə – aşağıdakı əməliyyatlardan hər hansı birini ehtiva edən ifadə:<, <=, >, >=, < >, =.

Açar söz istifadə edilərsə Bu ifadənin hüdudlarını müəyyən etmək üçün kiçik qiymət birinci gəlməlidir. Məsələn, blok ifadələri Case -1 - 5 Seçim_İfadəsi -4 olarsa icra olunmur. Bu sətir kimi yazılmalıdır Case -5 - 1.

Müqayisə əməliyyatları yalnız açar sözlə istifadə edilə bilər edir, bərabərlik əməliyyatı istisna olmaqla. Açar yoxdursa edir ağıllı redaktor onu lazımi yerə daxil edəcək.

Hər bir şəraitdə birdən çox ifadə və ya məhdudiyyət istifadə edə bilərsiniz Case. Misal üçün, 1-dən 4-ə qədər, 7-dən 9-a qədər, 11, 13-ə qədər, > n %.

Misal 4. Alış məbləğindən asılı olaraq endirim hesablayan proqram.

alt skidka()

“Asılı olaraq endirimin tərifi (%)

"satılan malların miqdarı

Zəif skidka Tam ədəd kimi

Zəif xülasə Subay kimi

yekun = Giriş qutusu(“Alış məbləğini daxil edin”, “Endirim hesablanması”, 0)

Əgər yekun > 0 Sonra

Case seçin xülasə

Case Is > 1000

Case Is > 500

Başqa Dava

Seçimi bitir

MsgBox"Endirim" & skidka & "%"

MsgBox"Satınalma məbləği göstərilməyib"

Və bugünkü yazıda biz VBA seçim iddiası haqqında danışacağıq. VBA Select Case mürəkkəb Excel Nested If ifadələri əvəzinə istifadə edilə bilər. Bu, VBA kodunun icrasını daha sürətli və başa düşülməsini asanlaşdırır.

Select-Case ifadəsi (bəzi dillərdə Switch Case kimi də adlandırılır) müxtəlif hallar (dəyərlər) üçün dəyişəni və ya ifadəni yoxlayır. Əgər işdən hər hansı biri doğru olarsa, o zaman yalnız həmin iş yerinə yetirilir və proqram bütün digər hallara məhəl qoymur.

Əgər xatırlayırsınızsa, son yazımızda “necə edə bilərsiniz” haqqında danışmışdıq.

VBA Select Case Statement sintaksisi:

Sintaksis aşağıdakı kimidir:

İşin vəziyyətini seçin
İşin dəyəri_1
Şərt = dəyər_1 olduqda icra ediləcək kod
İşin dəyəri_2
Şərt = dəyər_2 olduqda icra ediləcək kod
İşin dəyəri_3
Şərt = dəyər_3 olduqda icra ediləcək kod
Başqa Dava
Bütün digər hallar yanlış olduqda icra ediləcək kod
Seçimi bitir

Burada 'Şərt' sınaqdan keçirilməli olan və kod seqmentlərindən hər hansı birinin icra olunacağı dəyişənə və ya ifadəyə aiddir.

"dəyər_1", "dəyər_2" və "dəyər_3" "Şərt"in mümkün nəticələridir. Bu dəyərlərdən hər hansı biri “Şərt”ə uyğun gələndə onun müvafiq Case bloku icra olunacaq.

'Başqa' bir növ defolt hal dəyəridir və yalnız yuxarıda göstərilən bütün Case ifadələri False ilə nəticələndikdə yerinə yetiriləcək. 'Else' işi isteğe bağlıdır, lakin ümumiyyətlə ondan istifadə etmək yaxşı təcrübə hesab olunur.

VBA-da Select-Case nümunələri:

İndi isə bəzi praktiki nümunələrə keçək.

Misal 1:İfadə ilə Case Statement seçin.

Aşağıdakı misalda biz Case Select ifadəsinə şərt (yəni a=b) təqdim etdik. Əgər bu Doğrudursa, o zaman 'Case True' bloku icra ediləcək və False olduqda, 'Case False' bloku icra ediləcək.

Sub Select_Case_Example() "Dəyişənlər üçün dəyəri daxil edin a = InputBox("A üçün dəyəri daxil edin:") b = InputBox("B üçün dəyəri daxil edin:") " İfadənin qiymətləndirilməsi İş a = b Case True MsgBox seçin "The ifadə DOĞRUDUR" Case False Msgbox "İfadələr YANLIŞ" Sonu Seçin Son Alt

Qeyd: Bu kodda istifadəçidən dəyərlər almaq üçün istifadə olunur.

Misal 2: Mətn Sətirlərini yoxlamaq üçün Case ifadəsi

Bu nümunədə Case ifadələrindəki mətn sətirlərini müqayisə edəcəyik. Uyğunluq aşkar edilərsə, müvafiq iş bloku yerinə yetiriləcək, əks halda "Case Else" bloku icra ediləcək.

Sub Select_Case_Example() "Dəyişənlər üçün dəyəri daxil edin fruit_name = InputBox("Meyvənin adını daxil edin:") " İfadənin qiymətləndirilməsi Case fruit_name Case Select "Apple" MsgBox "Siz Apple daxil etdiniz" Case "Mango" MsgBox "Siz Mango daxil etdiniz" Case "Narıncı" MsgBox "Narıncı daxil etdiniz" Əks halda MsgBox "Mən bu meyvəni bilmirdim!" Sonda Seçin Son Alt

Misal 3: Nömrələri yoxlamaq üçün iş bəyanatı

Aşağıdakı misalda istifadəçinin daxil etdiyi nömrənin 5-dən az və ya böyük olub olmadığını yoxlayacağıq.

Sub Select_Case_Example() "Dəyişənlər üçün dəyəri daxil edin Num = InputBox("1-dən 10-a qədər istənilən ədədi daxil edin:") " İfadənin qiymətləndirilməsi Case Num Case Is Seçin< 5 MsgBox "Your Number is less than 5" Case Is = 5 MsgBox "Your Number is Equal to 5" Case Is >5 MsgBox "Nömrəniz 5-dən böyükdür" End Select End Sub

Qeyd:İstifadə edə bilərsən IS dəyərləri müqayisə etmək üçün Case Statement ilə açar söz.

Misal 4: Tək halda bir neçə şərti yoxlamaq üçün Case ifadəsini seçin.

Bu nümunədə istifadəçidən 1-10 arası istənilən rəqəmi daxil etməyi xahiş edəcəyik. Və sonra biz vəziyyət ifadəsində çoxlu şərtlərdən istifadə edərək rəqəmin cüt və ya tək olduğunu yoxlayacağıq. Diqqət yetirin ki, mən bir halda bir neçə şərti müqayisə etmək üçün “,” (vergül) istifadə etmişəm.

Sub Select_Case_Example() "Dəyişənlər üçün dəyəri daxil edin Num = InputBox("1 ilə 10 arasında istənilən ədədi daxil edin:") " İfadənin qiymətləndirilməsi Case Num Case 2, 4, 6, 8, 10 MsgBox "Nömrəniz cütdür." Case 1, 3, 5, 7, 9 MsgBox "Nömrəniz təkdir." Case Else MsgBox "Nömrəniz diapazondan kənardadır." End End Sub seçin

Qeyd: Bilirəm ki, nömrənin cüt və ya tək olduğunu yoxlamaq üçün daha asan üsullar var, lakin mən bu nümunədən yalnız bir hal ifadəsində çoxlu şərtləri necə yoxlaya biləcəyinizi izah etmək üçün istifadə etdim.

Misal 5: Davamlı diapazonu şərt kimi yoxlamaq üçün vəziyyət ifadəsi.

Burada bir şərt olaraq davamlı diapazonu sınaqdan keçirəcəyik. İstifadəçidən 1-dən 10-a qədər istənilən rəqəmi daxil etməyi xahiş edəcəyik, əgər rəqəm 1-dən 5-ə qədərdirsə (həm 1, həm də 5 daxil olmaqla) o zaman istifadəçinin daxil etdiyi nömrə belədirsə, "1-dən 5-ə qədər" "Doğru" olacaq. 6 ilə 10 arasında (həm 6, həm də 10 daxil olmaqla), "6-dan 10-a qədər iş" "Doğru" olacaq, əgər əvvəlki halların hər ikisi "Yanlış"dırsa, "Başqa hal" icra ediləcək.

Sub Select_Case_Example() "Dəyişənlər üçün dəyəri daxil edin Num = InputBox("1 ilə 10 arasında istənilən ədədi daxil edin:") " İfadənin qiymətləndirilməsi Case Num Case 1 - 5 MsgBox "Sizin nömrəniz 1 ilə 5 arasında" Case 6 - 10 MsgBox "Nömrəniz 6 ilə 10 arasında" Case Else MsgBox "Nömrəniz diapazondan kənardadır." End End Sub seçin

Beləliklə, bütün bunlar VBA Select Case Statement haqqında idi. Bu mövzu ilə bağlı fikirlərinizi bölüşməkdən çəkinməyin.

Ankit Kaul haqqında

Ankit Excel Trick proqramının yaradıcısıdır. O, bütün günü kvadrat başlı sevgilisinin (kompüterinin) qarşısında oturmağı sevən texnoloji Geekdir. :D. Ankit Microsoft Excel-i öyrənmək üçün güclü həvəsə malikdir. Onun yeganə məqsədi sizi "Excel Geeks"ə çevirməkdir.

PROQRAMLAMA DİLİ VİZUAL BASIC. FİLALLARIN PROQRAMLANMASI

Visual Basic-də budaqlama aşağıdakılardan istifadə etməklə təşkil edilir:

  • şərti IF ifadəsi;
  • daxili IIF funksiyası;
  • seçim operatoru CASE.

Bir şərti sınamaq və bəyanatı və ya ifadələr blokunu yerinə yetirmək üçün istifadə edin şərti ifadə IF...THEN. Bu operator müxtəlif sintaksislərlə istifadə edilə bilər: tək sətirli (xətti) və çoxsətirli (blok).

Xətti operator aşağıdakı sintaksisə malikdir:

Əgər<условие>Sonra<операторы!>

Blok operatoru aşağıdakı sintaksisə malikdir:

Əgər<условие>Sonra
<блок операторов 1>
Bitərsə

Verilmiş şərt True olarsa, bəyanat bloku, əks halda isə 2-ci ifadə bloku yerinə yetirilir. Else bəndi göstərilməyibsə, əgərŞərt yerinə yetirildikdə idarəetmə dərhal If-dən sonra növbəti operatora keçir.

If ifadəsi iç-içə ola bilər, yəni bəyanat bloklarının içərisində yerləşir. Birdən çox şərti sınamaq və bir neçə ifadə blokundan birini yerinə yetirmək üçün formanın genişləndirilmiş şərti ifadəsindən istifadə edin:

Əgər<условие 1>Sonra
<блок операторов 1>
Başqa<условие 2>Sonra
<блок операторов 2>
Başqa<условие n>Sonra
<блок операторов n>
Bitərsə

Bəzi şərtlərin yerinə yetirilməsindən və ya uğursuzluğundan asılı olaraq dəyərlərdən birini seçmək üçün aşağıdakı sintaksisə malik olan IIF şərti funksiyasından istifadə edin:

IIF(<условие>, <значение1>, <значение2>)

Əgər şərt doğrudursa, bu funksiya dəyər1 qaytarır, şərt yanlışdırsa, dəyər2.

Siz True və ya qaytaran şərt kimi Boolean ifadəsindən istifadə edə bilərsiniz

Yanlış və ya hər hansı arifmetik ifadə (sıfır dəyər False-ə, sıfırdan fərqli dəyər isə True-yə bərabərdir).

SEÇ CASE bəyanatı bir şərti sınamaq və bir neçə bəyanat blokundan birini yerinə yetirmək üçün istifadə olunur.

Operator qeydinin formatı:

Case seçin<проверяемое выражение>
Case<список выражений 1>
<операторы 1>Case<список выражений 2>
<операторы 2>Case<список выражений 3>
<операторы 3>
Başqa Dava
<операторы группы Else>
Seçimi bitir

Yoxlanılan ifadə Case Select ifadəsinin əvvəlində qiymətləndirilir. Bu ifadə istənilən növ dəyəri qaytara bilər (boolean, rəqəmli, sətir).

İfadələrin siyahısı standart ayırıcı simvolla (nöqtəli vergül) ayrılmış bir və ya bir neçə ifadədir.

Operator icra edilərkən bu siyahının elementlərindən heç olmasa birinin yoxlanılan ifadəyə uyğun olub-olmaması yoxlanılır.

Bu ifadə siyahısı aliment aşağıdakı formalardan birini ala bilər:

  • <выражение>- verilmiş ifadənin ifadələrdən biri - siyahı elementləri ilə üst-üstə düşməsini yoxlayır;
  • <выражение 1>Bu<выражение 2>- verilmiş ifadənin müəyyən edilmiş diapazona daxil olub-olmadığını yoxlayır;
  • < Is <логический оператор> < выражение>- verilmiş ifadə üçün göstərilən şərtin yerinə yetirilməsini yoxlayır.

Real proqramlarda tez-tez prosedurlarda daha mürəkkəb seçimlər etmək, üç və ya daha çox filial arasında seçim etmək lazımdır. Bu vəziyyətdə operatorları yerləşdirə bilərsiniz Əgər..Sonra..Başqa bir-birinə. Buna bəyanat yuvası deyilir.

Yuxarıdakı prosedur bir neçə iç-içə şərti ifadələrdən istifadə edir. Bu prosedurun yalnız Excel-də işləyəcəyini söyləmək lazımdır, çünki... Application.InputBox metodundan istifadə edir (bax Host Proqram Funksiyaları). Bu üsul istifadəçinin funksiya işləyərkən nömrədən başqa heç nə daxil etməsinə mane olur.

İstifadəçi qeyri-nömrə daxil edərsə, bu barədə mesaj alır.



İstifadəçi heç nə daxil etmirsə, səhv mesajı alır.




İstifadəçi “Ləğv et” düyməsini istifadə edərsə, o, “Daxil edilməmiş məlumat” mesajını alır.


VBA bəyanatın qısa versiyasını təqdim edir Əgər..Sonra..Başqa, bu, daxili ifadələrin sıxlaşdırılmış ekvivalentidir Əgər..Sonra..Başqa, siyahıda istifadə olunur. Bu qısa forma operatordur Əgər..Sonra..ElseƏgər



Hansı variantdan istifadə etmək hər bir proqramçının özü üçün fərdi olaraq qərar verdiyi bir sualdır. İkinci variantın daha yığcam olduğuna inanılır, birincisi isə daha rahat və başa düşüləndir.


Siz bir çox mümkün kod yollarından seçmək üçün ifadələri yerləşdirə bilərsiniz Əgər..Sonra..Başqa bir çox səviyyələrdə dərin, lakin filialların tərəqqisini izləmək getdikcə çətinləşir.

VBA-nın çoxlu sayda müxtəlif kod filiallarından seçim etməli olduğunuz hallarda istifadə üçün şərti keçid operatoru var - Case seçin. Demək olar ki, Else..If ilə eyni işləyir, lakin daha başa düşüləndir.

Select Case açar sözləri bir çox Case ifadələri ilə istifadə olunur, burada hər bir Case ifadəsi fərqli vəziyyətin baş verməsini yoxlayır və Case filiallarından yalnız biri yerinə yetirilir. Case filialında bir, daha çox və ya heç bir VBA ifadəsi ola bilər.


Şərtsiz keçid operatoru

Qeyri-şərtsiz keçid operatorunu ilkin proqramlaşdırma dillərindən bir rudiment adlandırmaq olar ki, o, praktiki olaraq kod bloklarının tsiklik icrasını təşkil etmək üçün yeganə vasitə idi.

Şərtsiz keçid operatoru həmişə prosedur və ya funksiyadakı ifadələrin yerinə yetirilmə sırasını dəyişir. Bu halda heç bir şərt yoxlanılmır.


Sintaksis:

Get xətti


xətt- GoTo ifadəsini ehtiva edən eyni prosedur və ya funksiyada hər hansı etibarlı etiket və ya sətir nömrəsi.

Select Case konstruksiyası If konstruksiyasına alternativdir. . . Sonra. . . Əksinə, çoxlu ifadələrdən ibarət bloku icra edərkən. Select Case konstruksiyası If konstruksiyasına bənzər bir qabiliyyəti təmin edir. . . Sonra. . . Əksinə, lakin ondan fərqli olaraq, birdən çox seçim olduqda kodu daha oxunaqlı edir.

Select Case konstruksiyası sınaqdan keçirilməli olan tək ifadə üzərində işləyir və bu, konstrukta daxil olduqdan sonra bir dəfə qiymətləndirilir. Sonra VBA nəticəni konstruksiyanın Case ifadələrində göstərilən dəyərlərlə müqayisə edir. Uyğunluq aşkar edilərsə, Case bəyanatı ilə əlaqəli ifadələr bloku yerinə yetirilir:

Test ediləcək Case ifadəsini seçin

[operator_blockn]]

Hər bir ifadə siyahısı bir və ya bir neçə dəyərin siyahısıdır. Bir siyahıda birdən çox dəyər varsa, onlar vergüllə ayrılır. Hər bir bəyanat blokunda bir neçə ifadə var və ya heç bir ifadə yoxdur. Yoxlanılan ifadənin hesablanmış dəyərinin bir neçə Case ifadələrinin qiymətlərinə uyğun gəldiyi ortaya çıxarsa, tapılan bütün uyğunluqların birinci Case ifadəsi ilə əlaqəli ifadələr bloku icra olunur. Sınaq edilən ifadənin dəyəri ilə Case ifadələrinin bütün siyahılarının qiymətləri arasında heç bir uyğunluq tapılmadıqda, VBA Case Else ifadəsi ilə əlaqəli ifadələr blokunu yerinə yetirir (qeyd edək ki, bu, isteğe bağlıdır).

Funksiyanın hesablanması nümunəsinə baxaq

Alt nümunə 2()

Davamlı pi2 = 1.57

Qoy x = CSng(InputBox("x daxil edin", "Giriş", 0))

MsgBox "Yanlış mənbə datası!"

Zəng et("D1", z)

Nəzərə alın ki, Select Case konstruksiyası ifadəni giriş zamanı yalnız bir dəfə, If konstruktu isə qiymətləndirir. . . Sonra. . . Else hər Elself ifadəsi üçün fərqli ifadəni qiymətləndirir. If quruluşu. . . Sonra. . . Else yalnız If ifadəsi və hər bir Elself ifadəsi eyni ifadəni qiymətləndirdiyi halda Select Case strukturu ilə əvəz edilə bilər.

Döngü operatorları. İç-içə döngələr

1. Döngü operatorları

2. İç-içə döngələr

1. Döngü operatorları.

Döngülər bir və ya bir neçə kod sətirini dəfələrlə yerinə yetirməyə imkan verir. VBA aşağıdakı döngələri dəstəkləyir:

Quraşdırmaq üçün. . . Sonrakı. Təkrarların sayı əvvəlcədən məlum olduqda, For döngəsi istifadə olunur. . . Sonrakı. For döngəsi döngə dəyişəni və ya dövrə sayğacı adlanan dəyişəndən istifadə edir ki, bu da dövrə hər təkrarlananda müəyyən edilmiş məbləğlə artır və ya azalır. Bu konstruksiya üçün sintaksis aşağıdakı kimidir:

Sayğac üçün = başlanğıc üçün

operatorlar

Sayğac, başlanğıc, son və artım parametrləri ədədidir.

Qeyd. Artım parametri müsbət və ya mənfi ola bilər. Müsbət olarsa, başlanğıc parametri son parametrdən kiçik və ya ona bərabər olmalıdır, əks halda dövrə yerinə yetirilməyəcəkdir. Artım mənfi olarsa, icra ediləcək dövrənin gövdəsi üçün başlanğıc sondan böyük və ya ona bərabər olmalıdır. Addım parametri göstərilməyibsə, artım parametrinin standart dəyəri 1-dir.

VBA For loopunu aşağıdakı ardıcıllıqla yerinə yetirir:

1. Başlamaq üçün dövrə dəyişən sayğacının dəyərini təyin edir.

2. Döngə dəyişən sayğacının qiymətini və son parametrin qiymətini müqayisə edir. Sayğac böyükdürsə, VBA dövrəni bitirir. (Əgər artım mənfi olarsa, döngə dəyişən sayğacının dəyəri son dəyərindən az olarsa, VBA dövrəni icra etməyi dayandırır.)

3. İfadələr dövrəsinin gövdəsində olan ifadələri icra edir.

4. Döngə dəyişən sayğacının dəyərini 1 və ya əgər göstərilibsə, artım parametrinin dəyəri ilə artırır.

5. 2-dən 4-ə qədər olan addımları təkrarlayır.

Məsələni nəzərdən keçirək: f(t) funksiyasının qiymətini hesablayın.

verilmiş a, b, n üçün, əgər t Dt=(b-a)/(n-1) addımı ilə a-dan b-yə dəyişirsə.

Alt nümunə 3()

Dim f() Subay kimi

Dim a As Single, b As Single, t As Single, dt As Single

Dim i Tam Ədədi, n Tam Ədədi

Zəng oxu("a1", a) : Zəng oxu("b1", b) : Zəng oxu("c1", n)

ReDim f(1 - n - 1)

dt = (b - a) / (n - 1) : t = a

Zəng et("a2", "i"): Zəng et("b2", "t") : Zəng et("c2", "f(t)")

i = 1 üçün n - 1

Əgər t<= -1 Then

ElseIf t > 1 Sonra

Zəng et("a" & (2 + i), i) : Zəng et("b" & (2 + i), t) : Zəng et("c" & (2 + i), f(i))

Hər konstruksiya üçün. . . Sonrakı

Hər döngə üçün. . . Sonrakı for döngəsinə bənzəyir. . . Sonra, lakin o, ifadələri müəyyən edilmiş sayda təkrarlamaq əvəzinə, hər bir element üçün bir qrup ifadəni obyektlər dəstindən və ya massivdən təkrarlayır. Çoxluqda neçə elementin olduğu bilinməyəndə xüsusilə faydalıdır.

For Every loop konstruksiyasının sintaksisi. . . Sonrakı:

Qrupdakı hər bir element üçün

operatorlar

For Every loop istifadə edərkən aşağıdakı məhdudiyyətləri yadda saxlayın. . . Sonrakı:

Dəstlər üçün element parametri yalnız növ variantlı dəyişən, obyekt tipli ümumi dəyişən və ya Obyekt Brauzerində siyahıya alınmış obyekt ola bilər.

Massivlər üçün element parametri yalnız Variant dəyişəni ola bilər

For Every loop istifadə edə bilməzsiniz. . . Daha sonra istifadəçi tərəfindən müəyyən edilmiş tipə malik olan massivlə, çünki növ variantının dəyişəni istifadəçi tərəfindən müəyyən edilmiş tipin dəyərini ehtiva edə bilməz

Do...Loop dizaynı

Do döngüsü ifadələr blokunu qeyri-məhdud sayda yerinə yetirmək üçün istifadə edilə bilər. Do dizaynının bir neçə variantı var. . . Döngə, lakin onların hər biri dövrədən nə vaxt çıxacağını müəyyən etmək üçün şərt ifadəsini qiymətləndirir. If konstruksiyasında olduğu kimi. . . Sonra şərt False (sıfır) və ya True (sıfır deyil) kimi qiymətləndirilən dəyər və ya ifadə olmalıdır.

Aşağıdakı tikintidə, Do. . . Döngə ifadələri şərt dəyəri True olduğu müddətcə yerinə yetirilir:

Vəziyyəti yerinə yetirin

operatorlar

Bu döngəni yerinə yetirərkən VBA əvvəlcə şərti yoxlayır. Şərt Yanlışdırsa, o, bütün döngə ifadələrini atlayır. Doğrudursa, VBA döngü ifadələrini yerinə yetirir, Do While ifadəsinə qayıdır və şərti yenidən sınaqdan keçirir.

Buna görə də, bu konstruksiya ilə təmsil olunan dövrə şərt dəyəri sıfır və ya True olmadığı müddətcə istənilən sayda yerinə yetirilə bilər. Nəzərə alın ki, şərt ilk dəfə yoxlanılanda yalan olduğu ortaya çıxarsa, dövrə gövdəsinin ifadələri bir dəfə də olsa yerinə yetirilmir.

Bir misala nəzər salaq: Seriyanın cəmini hesablayın

verilmiş dəqiqliklə.

Alt nümunə 4()

Dim e As Single, x As Single, s As Single

Dim m As Subay, p As Single, i As Single

Zəng oxudu("a1", x): Zəng oxudu("b1", e)

s = 0: i = 1: m = 1: p = -1

Zəng et("a2", "i") : Zəng et("b2", "m") : Zəng et("c2", "s")

Abs(m) >= e

Zəng et("a" & (2 + i), i): Zəng et("b" & (2 + i), Abs(m)) : Zəng et("c" & (2 + i), s)

Do dizaynının başqa bir variantı. . . Döngü əvvəlcə döngə gövdəsinin ifadələrini yerinə yetirir və sonra hər icradan sonra şərti yoxlayır. Bu variasiya loop əsas ifadələrinin ən azı bir dəfə yerinə yetirilməsini təmin edir:

operatorlar

Vəziyyət zamanı

Döngə konstruksiyasının digər iki variantı əvvəlkilərə bənzəyir, yalnız şərt yanlış olduqda döngə yerinə yetirilir:

Döngə ümumiyyətlə yerinə yetirilmir və ya dəfələrlə yerinə yetirilir:

Şərt qədər edin

Döngü operatorları

Döngə ən azı bir dəfə yerinə yetirilir:

operatorlar