VBA Operatörleri: Basit Bir Seçim. Metodik İfadeler ve Görevler Vba Smart If İfadesi

Yıkama є programlama sırasında daha da çarpık, kırıklar, belirlenen kriterlere göre nadiren kazanmamıza izin verir (aynı ilke kazanılır EĞER Excel işlevleri).

Zihne sorduğunuz gibi en önemli işlev EĞER Ve hemen nasıl çalıştığına hayret ediyoruz:

Eğer [AKILLI BURADA] O zaman "=> YAKSHO umova vіrna, TODI "Talimatlar, "doğru" Else "=> DÜŞMEYE KARŞI "Talimatlar, "saçma" gibi Bitirse

Hadi uygulamaya geçelim ve değişim zamanında beni taklit eden popoya dönelim. Prosedürün metaforu, sanki ortada belirtilen satırın değeriymiş gibi diyalog penceresini açmasıydı. F5:

Odaya nasıl mektup girilir? F5, tse bir af. Birini kurtarmak istiyoruz.

Alt değişkenler () "Değişiklik bildiriliyor Dim last_name As String, first_name As String, age As Integer, row_number As Integer "Satır_numarasını değiştirmek için değişiklik atanıyor = Aralık("F5") + 1 last_name = Cells(satır_numarası, 1) kök, 2) age = Cells(row_number, 3) "MsgBox Dialog Box last_name & " " & first_name & "," & age & "years" End Sub

Dikkat edelim, yaku yeniden doğrula - chi є ortadaki değeri girin F5 numara, önünde, kod vikonano olacağı için.

Fonksiyonu hızlandırıyoruz Sayısaldır yankı zihin için:

Alt değişkenler () "Yaylardaki değer nedir (çizgi roman F5) є sayısaldır (I BU NUMBER IS IF Є BRIM) sonra "sonra If IsNumeric (Aralık ("F5")) Sonra "Dim last_ , first_name As değişikliği bildiriliyor String, age As Integer, row_number As Integer "Satır_numarası = Aralık ("F5") + 1 last_name = Hücreler (satır_sayısı, 1) ilk_adı = Hücreler (satır_sayısı, 2) age = Hücreler (satır "MsgBox iletişim kutusu soyadı & " " & first_name & "," & age & " age" End If End Sub

Aynı zamanda, zihin hazır değilmiş gibi talimatları da yazmamız gerekiyor:

Alt değişkenler () IsNumeric (Aralık ("F5")) ise "Değişiklik Dim last_name As String, first_name As String, age As Integer, row_number As Integer "satır_numarası değiştirmek için değer atama = Aralık + 1 last_name = Hücreler (satır_sayısı, 1) first_name = Cells (row_number, 2) age = Cells (row_number, 3) "MsgBox Dialog box last_name & " " & first_name & "," & age & " ro_v" Aksi takdirde "İletişim Kutusu : Öncekini görme MsgBox "Değer girildi & Aralık ("F5") & "Doğrulanamıyor!" "ClearContents End If End Sub

Artık sayısal olmayan anlamlar günlük sorunlara neden olmuyor.

Pratsyyuyuchi, 16 satır verinin intikamını alacak dizimizle, bir sonraki adımımız reverb chi'de olacak є satır_numarasını değiştir: "daha düşük veya daha fazla 2" ve "daha az düşük veya daha fazla 17".

Şimdi povnyannya operatörlerine hızlıca bir göz atalım:

ve tsі korisnі operatörleri:

Şimdi en iyi beyinlerden birini dodamo yapalım VE operatörler arasında

Alt değişkenler () IsNumeric (Aralık ("F5")) ise "Soyadı Dize Olarak Karartın, ad_adı Dize olarak, age As Integer, row_number As Integer row_number = Range("F5") + 1 Eğer satır_numarası > = 2 ise Ve satır_numarası

Makromuzu daha pratik hale getirmek istiyorsak, değiştirebiliriz 17 bir değişiklik için, yak mistila b sıradan bir şekilde ölür. Tse, dış görünüm sınırını değiştirmeye gerek kalmadan diziye satır eklememize ve diziden satır çıkarmamıza izin verir.

Bir fark yaratmak için, bir değişiklik yaratabiliriz nb_rows ve bu işlevi ekleyin.

muzaffer bir işlevim var WorksheetFunction.CountA, işlevin bir analogu olarak COUNTA Excel'in kendisinde.

Değişikliğin değerini yazarak ilk sütunda bir dizi boş olmayan ortayı alan bir fonksiyon olmasını istiyoruz. nb_rows:

Alt değişkenler () IsNumeric (Range("F5")) ise "YAKI NUMBER Dim last_name As String, first_name As String, age As Integer, row_number As Integer Dim nb_rows As Integer row_number = Range("F5") = 1 WorksheetFunction. CountA (Aralık ("A:A")) "Satır sayısını sayma işlevi Eğer satır_sayısı > = 2 Ve satır_numarası

ElseIf

ElseIf size ek seçenekler ve ardından IF komutları ekleme yeteneği verir:

[CLEAN 1] O zaman "=> YAKSCHO Umova 1 doğruysa, TODI "Talimatlar 1 ElseIf [CLEAN 2] O zaman "=> YAKSCHO Umova 1 yanlış, Ale Umova 2 doğru, TODI "Talimatlar 2 Başka" => Aksi " Talimatlar

Yakscho UMOVI 1 vykonuetsya, talimat 1 bude vikonano ta operatörü mahrum bırak EĞER(hangisi başlar EĞER End If ile biter). Yakscho UMOVI 2 anlam kazanıyor" saçmalık ", o zaman vikonana olacaksın talimat 2 ve sanki şeytanını çeviriyormuş gibi" saçmalık ", sonra talimat 3(pіd Başka) vikonano olacaktır.

Sub score_comment() "Dim notunu Tamsayı Olarak Değiştir, score_comment As String notu = Aralık("A1") ElseIf note = 5 O zaman score_comment = "Garniy Skoru" ElseIf notu = 4 O zaman score_comment = "Tatmin edici Skor" ElseIf not = 3 Sonra score_comment = "Başarısız Puan" ElseIf not = 2 Sonra score_comment = "Kötü Puan" = "Kötü Puan" Else score_comment = "Sıfır puan" End If "Ortadaki Yorum B1 Aralığı("B1") = score_comment End Sub

Seçme

Іsnuє alternatif vikoristany Eğer bagatma ElseIf talimatlar, ancak komutun kendisi Seçme, bu tür durumlara daha fazla nasıl yaklaşılır.

Operatörlü bir makronun ucuna bakalım Seçme:

Sub score_comment() "Dim notunu Tamsayı olarak değiştir, score_comment As String note = Range("A1") "Skora dayalı yorumlar Case note seç"

Varto, diğer maç operatörleriyle de kazanabileceğimizi belirtiyor:

Vaka >= 6

Farklı anlamlarla uygulayın:

Durum = 6, 7 "hangi değer = 6 veya 7 Durum 6, 7" hangi değer iyi değil 6 veya 7 Durum 6 ila 10

bu EĞER işlevi VBA'da tüm ifadeler arasında en çok kullanılanlardan biridir. EĞER işlevleri, belirtilen koşulun karşılanıp karşılanmadığını kontrol eder. VBA'daki EĞER işlevi, Excel'dekinden biraz farklı çalışır. Excel'de EĞER işlevleri iki değer alır: Geri almanın değeri, yani DOĞRU veya YANLIŞ olarak değerlendirilebilir ve IF( koşul, dönüş_değeri_eğer_durum_doğru, dönüş_değeri_eğer_durum_yanlış). Ancak, VBA'daki EĞER işlevi yalnızca ilk kısımdır, yani. koşulun DOĞRU veya YANLIŞ olarak değerlendirilip değerlendirilmediğini kontrol edin. Başka bir THEN ifadesinin yardımı için atanan herhangi bir senaryoya basın.

VBA'da basit bir EĞER işlevi kullanma

İşte bir örnek EĞER işlevi. VBA kodundaki bu nokta, belirtilen koşulun (yani 1 > 4) DOĞRU veya YANLIŞ olarak değerlendirilip değerlendirilmediğini kontrol etmektir. Her durumda, sadece birkaç kurulum varsa, düşündüğünüzde kroşe DOĞRU'ya bölünecektir. Her durumda, sonuç ekranda görüntülenecektir. İşlev YANLIŞ'a getirildiğinden, VBA kodu hiçbir şey yapmaz.

1
2
3
4
5

Alt IF_FUNCTION()
7 > 1 ise
MsgBox "7, 1'den büyük"
Eğer son
son alt

bu SONRA deyimi, esasen, eğer hemen önceki koşul TRUE olarak değerlendirilirse, hemen ardından gelen adımların yürütüleceğini belirten bir yönergedir.

EĞER işlevi varsayılanı, uygulamanın bunun EĞER işlevinin son satırı olduğunu bilmesini sağlayan END IF bildirimi. Aşağıda EĞER fonksiyonunun biraz daha kısa bir şekli verilmiştir. Bunda END IF deyiminin kaldırıldığını ve bu nedenle üç satır kod tek satırda birleştirildiğini unutmayın.

Alt IF_FUNCTION_SHORT()
7 > 1 ise MsgBox "7 1'den büyüktür"
son alt

Ancak, bu form yalnızca hiçbir belge bulunmadığında kullanılmalıdır. BAŞKA veya ELSE IF açıklamalara ihtiyaç vardır. Ne olduklarına ve EĞER işlevini geliştirmeye nasıl yardımcı olduklarına bakalım.

VBA'da ELSE ile Vicorist IF işlevi

Mümkün olduğu durumda, ancak zihin DOĞRU olarak değerlendirilirse, EĞER işlevinin perdenin sonuna kadar yaratılmış olmaktan suçlu olduğunun farkındayız. Ama yine de, küçüklerin yaratılacağı gerçeğini, olduğu gibi, karşılanacağınızı düşünüyorsunuz. EĞER işlevinin ELSE ifadesi için kazanmasını sağlamanın bir yolu. Basitçe söylemek gerekirse, ELSE deyimi, IF yan tümcesinde belirtilen koşul FALSE olarak değerlendirildiğinde, uygulamanın ELSE bloğunda belirtilen adımları yürütmesine neden olur.

Aşağıdaki VBA kodunda, IF fonksiyonlarının false olarak değerlendirilmesinde, ELSE bloğunda belirtilen stiller yürütülür ve bunun sonucunda “1 4'ten küçüktür” mesajı ekrana gelir. Bloka birden fazla adım eklenebilir, böylece hepsi birer birer yürütülür.

1
2
3
4
5
6
7

Alt IF_ELSEIF_FUNCTION()
1 > 4 ise

Başka:
MsgBox "1 4'ten küçük"
Eğer son
son alt

ELSEIF ve ELSE ile ek EĞER işlevleri için: VBA'da

ELSE deyimi, ELSEIF deyimleri için onaylanabilir. Koku, belirli zihinleri yeniden kontrol etmek için tipiktir ve hepsi TAM olarak değerlendirildiğinden, kanıtlar zihnin ELSE'sinde işaretlenir, artık kabuller olacaktır. EĞER ifadesi belirli bir koşulu kontrol edecektir. YANLIŞ olduğu ortaya çıkar, ilk ELSEIF ifadesinde belirtilen koşul kontrol edilecektir. ELSEIF'in başka bir bölümünde görevlendirildiğini düşündüğünüzün kaderini almanın kokusu gibi, ele alınacak ve sonra sadece değil. Her şey IF ve ELSEIF yan tümcelerinde YANLIŞ olarak ayarlanmıştır, son ELSE: bloğunun altında biraz bahsedildiği gibi yürütülecektir. Tekrarlamak gerekirse, pis koku birden fazla ELSEIF ifadesi olduğu için, DOĞRU olarak değerlendirilen ilk ifadeler reddedilecek ve bir kez kaçırıldığında, yürütme kodu END IF ifadesine çökecektir. DOĞRU olarak değerlendirilen en büyük ELSEIF zihinleri olsun, yalnızca DOĞRU olarak değerlendirilen ilk zihinler yürütülecektir.

1
2
3
4
5
6
7
8
9
10
11


Eğer< >o zaman
MsgBox "1 4'ten büyüktür"
ElseIf< >o zaman

ElseIf< >o zaman

Başka< >:

Eğer son
son alt

Metin aşağıda gösterilmiştir, önce EĞER kontrol edilir. YANLIŞ olarak değerlendirdiği için, ilk ELSEIF koşulu değerlendirilir, ardından ikincisi gelir. Bunlardan biri olmadan, DOĞRU olarak değerlendirildiler, ELSE'de belirtilen Adımlar: umova є yürütüldü.

1
2
3
4
5
6
7
8
9
10
11

Alt IF_ELSEIF_ELSE_FUNCTION()
1 > 4 ise
MsgBox "1 4'ten büyüktür"
ElseIf 2 > 4 O zaman
MsgBox "2, 4'ten büyüktür"
ElseIf 3 > 4 O zaman
MsgBox "3, 4'ten büyüktür"
Başka:
MsgBox "1, 2 veya 3 - 4'ten az"
Eğer son
son alt

Hızlı İpucu – EĞER ifadeleri nasıl daha hızlı çalışır?

Yan koddaki azalma benzer görünüyor. Başka bir işlevdeki iki ELSEIF zihni devrilebilir. VBA kodunda hangisinin daha hızlı çalıştığını düşünüyorsunuz?:
Eğer son
sonraki ben
MsgBox Zamanlayıcı - t
son alt

cevap, ikincisinin birincisinden çok daha hızlı çalışmasıdır. Niye ya? Kendisinden önceki koddaki düzensiz satırlar arasında bir hamlede durması için iki saniyeye ihtiyaç duyan, olduğu gibi DOĞRU olarak değerlendirilir. ELSEIF'in ilk olduğuna, DOĞRU'nun yürütüldüğüne ve DOĞRU olarak değerlendirilseler bile diğer koşulların hiçbirinin değerlendirilmediğine saygı gösterin. VBA kodunun ilk konumunda, 6. satırdaki ELSEIF işlevi DOĞRU olarak değerlendirilirken, ikinci satırda 5. satır ölçütleri karşılar. Daha fazla, daha düşük zekaya sahip olan DOĞRU olarak derecelendirilir, daha önce VBA koduna yerleştirilmelidir, diğer her şey aynıdır.

Excel VBA kodunda ortak olan If...Then...Else operatörünün ve IIf işlevinin tek satırlı çok satırlı yapısı - sözdizimi, bileşenler, uygulamalar.

If...Then...Else İfadesi

Şebeke Eğer...O zaman...Başka kontrolün operatör bloklarından birine atanması, zihin çevirmenin sonuçlarına bağlıdır.

Tek sıralı yapı

Şebeke Eğer...O zaman...Başka anahtar kelimeler olmadan tek sıralı bir tasarımda kazanabilir Başka, Eğer son.

Tek satırlı yapının sözdizimi If...Then...

Eğer[umova] O zamanlar[Şebeke]

Tek sıralı yapı bileşenleri Eğer... o zaman...

  • umova Doğru veya YANLIŞ;
  • operatörler umova değeri döndür Doğru;

Bir bileşen gibi umova değeri döndür YANLIŞ, inşaatta deyim bloğu Eğer... o zaman...

popo 1

Sub primer1() Dim d As Integer, a As String d = InputBox("1'den 20'ye kadar bir sayı girin", "Örnek 1", 1) d > 10 ise O zaman a = "Sayı " & d & " 10'dan büyük " MsgBox a End Sub

Bagatoryadna inşaat

If...Then...Else dizi yapısının sözdizimi

Eğer[umova] O zamanlar[Şebeke] ElseIf[umova] O zamanlar[Şebeke] ---------------- Başka[Şebeke] Eğer son

Bagatorium inşaatının bileşenleri Eğer...O zaman...Başka:

  • umova- anahtar kelimeyi takip eden sayısal veya satır ifadesi Eğer veya ElseIf bu mantıklı anlam dönüyor Doğru veya YANLIŞ;
  • operatörler- bileşen olarak kullanılan VBA Excel kodundaki ifade bloğu umova değeri döndür Doğru.
  • noktalı çizgi sıranın ek yapısal bloklarını belirleyin ElseIf [umova] O zaman o satırlar [Şebeke];
  • anahtar kelimeden sonra ifade bloğu Başka her türlü vipadka'da vykonuetsya, ancak şarj koduna yapısal bir blok Başka o satırlar [Şebeke] obov'azkovim değil ve eksiklikler olabilir.

Bir bileşen gibi umova değeri döndür YANLIŞ, ardından inşaatta bir operatör bloğu Eğer...O zaman...Başka bu program kontrolü atlanır ve bir sonraki kod satırına aktarılır.

Bagatory-sıra tasarımının en basit çeşidi Eğer...O zaman...Başka:

Eğer[umova] O zamanlar[Şebeke] Başka[Şebeke] Eğer son

popo 2

Sub primer2() Dim d As Integer, a As String d = InputBox("1'den 40'a kadar bir sayı girin", "Örnek 2", 1) Eğer d ise< 11 Then a = "Число " & d & " входит в первую десятку" ElseIf d >10 ve gün< 21 Then a = "Число " & d & " входит во вторую десятку" ElseIf d >20 ve gün< 31 Then a = "Число " & d & " входит в третью десятку" Else a = "Число " & d & " входит в четвертую десятку" End If MsgBox a End Sub

İşlev IIF

İşlev Eğer verilen aklı tekrar kontrol etmek ve tekrar kontrol sonucuna göre değeri tekrar tekrar çevirmek.

İşlev sözdizimi

Eğer([umova], [Doğru], [Yanlış])

IIf işlevinin bileşenleri

  • umova- mantıksal değerleri döndüren sayısal veya satır ifadesi Doğru veya YANLIŞ;
  • Kesinlikle doğru Eğer, beğenmek umova değeri çevirdi Doğru;
  • YANLIŞ- değer, işlevin nasıl döndürüleceği Eğer, beğenmek umova değeri çevirdi YANLIŞ.

popo 3

Sub primer3() Dim d As Integer, a As String d = InputBox("1'den 20'ye kadar bir sayı girin", "Örnek 3", 1) a = IIf(d< 10, d & " - число однозначное", _ d & " - число двузначное") MsgBox a End Sub

“İptal” düğmesine basıldığında veya giriş kutusu iletişim penceresi bir çarpı işaretiyle kapatıldığında, bu adımlarda boş bir satır döndürülecek şekilde bir af oluşturulur. D Tamsayı tipine boş bir değişiklik satırının atanması, bir af gerektirir. İletişim kutusunun "Tamam" düğmesine basıldığında, metin biçiminde giriş alanına girilen sayı, VBA Excel otomatik olarak değişikliğin sayısal biçimine dönüştürür d.

Temel Taşıma VBA Operatörleri

Yorumlar (0)

3.1. Kayıt operatörleri için kurallar

Operatörleri kaydederken aşağıdaki kuralları izleyin:

Yeni bir operatörün dış görünümü yeni bir satırdan kaydedilir.

Bir satıra bir grup operatör yazmak için, bunlar bir çift (:) ile kendi aralarında bölünürler.

Operatör bir satırda hareket etmezse, satırın sonuna bir boşluk işareti (_) koymak ve ardından bir sonraki satıra sığmayan kısma devam etmek gerekir.

3.2. davet operatörü

Operatör galip geliyor, sanki değişiyor, yeni bir değer vermek gerekiyor. Win rahatsız edici sözdizimi olabilir:

IM'YA_ZMINNOY= VİRAZ

Aynı zamanda sağ tarafta puanlar sayılır ve daha sonra sol tarafta duracak olan sonucun değişmesi beklenir.

Örneğin. Matematiksel virazın başlangıcını çekmek için operatörün yardımı için yazın:

VBA'da, tüm virüs, saldırgan bir operatörün varlığında kaydedilebilir:

Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))

3 .3. Operatörleri girme

3 .3.1. Operatör ve Fonksiyon MsgBox

Şebeke Mesaj Kutusu Bilgilerin görüntülenmesini iletişim penceresine ayarlayın ve kısa bir düğme ile düğmeye basma modunu ayarlayın.

Win rahatsız edici sözdizimi olabilir:

Mesaj Kutusu Bildirimler[,Düğmeler][, Başlık]

Argümanlar:

Tavsiye - obov'yazykovyy argümanı, scho vіknі іnformatsiyne voіdomlennya'da sorar. Bir işaretle birleştirilmiş birkaç metin satırından oluşturulabilir & . Kimin argümanından alıntı Chr(13) yeni bir satıra geçişten önce bilgi görüntüleme saatinden önce getirmek.

Düğmeler - bu bağımsız değişkenin değeri, pencerede görünen düğmelerin kategorisini belirler. Para yatırma düğmesi argümanının değeri, simgeninkiyle aynıdır. Belirtilmemişse, uyandırma penceresinde butonların görüntülenmesi gerekiyorsa, OK butonu görüntüleniyorsa promosyon için değer seçilir. Masada 3.1 Bildirim penceresindeki olası düğme ve simge kombinasyonları.

başlık - Pencerenin başlığını ayarlayın.

İşlev Mesaj Kutusuİletişim kutusunda düğmeye nasıl basıldığını belirtmek için değeri Tamsayı yazmak için çevirin.

Tablo 3.1. Değiştir butonunun geçerli değerleri

fermantasyon

Argüman

Tamam düğmesi

Tamam ve Skasuvannya düğmeleri

Düğmeler Evet ve Hayır

Düğmeler Yani, Nі ta Skasuvannya

Düğmeler Sabitle, Tekrarla ve Yoksay

VbAbortYeniden DeneYoksay

Düğmeler Tekrar ve Skasuwati.

bilgi işareti

yemek işareti

dolu işareti

Örneğin. Lütfen güncel tarih hakkında bilgi veriniz.

MsgBox "Takvimde bugün" & Tarih , "Uvaga"

Sonuç olarak, bir sonraki adım gösterilecektir (Şekil 3.1).

OK düğmesine bastıktan sonra, istem kapanacak ve program, MsgBox çağrısının hemen arkasında olması gereken operatörden uyanacaktır.

3.3.2. İşlev Giriş Kutusu

İşlev Giriş Kutusu zdіysnyuє vіdnjuє vіnnja zmіnnyh vіnіh vіkna vіkna vіkna ta maє ilerleyen sözdizimi:

Im'ya_Zminniy = Giriş Kutusu(Bildirim[, Başlık] )

Argümanlar:

Tavsiye - Obov'yazykovy argümanı. Girilecek sensör değerini açıklamak için bilgi notunun sonunda ne söyleyeceğinizi sorun

başlık - Pencerenin başlığını ayarlayın.

Örneğin, Klavyeden N değişikliğinin değerini girin, değeri istem 10'a iletin.

Bunun için saldırgan operatörü bükebilirsiniz:

N = InputBox("N'yi Girin", "Giriş verileri",10)

Sonuç olarak, N'nin değişim değerinin girişi için bir sonraki pencere görüntülenecektir (Şekil 3.2).

Kilit değeri doğruysa, OK düğmesine basıldıktan sonra giriş penceresi kapatılır, N'nin değiştirilmesine 10 değeri atanır ve program, çağrının hemen arkasında olması gereken operatörden giriş yaptıktan sonra Giriş Kutusu.

Kilitleme değeri coristuvachev için uygun değilse, OK düğmesine tıklamadan önce N değişikliğinin gerekli değerini girmek gerekir.

3 .4. Akıllı EĞER ifadesi

Ayrıştırılan numaralandırma işleminin uygulanması için VBA, operatörü kullanır. Eğer…O zaman…Başka, hangi perevіrki zihinlerin en basit şeklidir. Win rahatsız edici sözdizimi olabilir:

EğerUMOVIO zamanlarOPERATÖR_1ElseOPERATÖR_2

OPERATÖR_1 vykonuetsya gibi UMOVI doğru, aksi takdirde muzaffer OPERATÖR_2. Bu durumda If…Then…Else ifadesi bir satırda yazılır.

UMOVI- Tse viraz mantıksal türü. Virazu'nun sonucu bir Boole türü olabilir. Viraz affedebilir ve katlanabilir. Basit zihinleri kaydederken, tüm olası işlemler Tabloda gösterilen mavi renktedir. 3.2.

tablo3 .2. mantıksal mavi

Operasyon

İsim

viraz

Sonuç

Doğru, yani A, B'ye daha yakın

Doğru, yani A, B ile aynı değil

Doğru, A ile aynı, daha fazla

Doğru, hangisi daha az

Daha fazla chi eşittir

Doğru, az çok bir olan

Daha az veya daha pahalı

Doğru, daha az veya daha iyi gibi

Katlanan zihinler, basit yollardan zastosuvannya mantıksal işlemlerden ve yuvarlak yaylardan oluşur. Mantıksal işlemlerin listesi Tablo'da gösterilmektedir. 3.3.

tablo3 .3. mantıksal işlemler

İsim

viraz

Sonuç

daha mantıklı
yasaklı

mantık I

mantık ABO

Akıllı operatörde, operatör bloğunun kabul edilebilir ikamesi cilt operatörüdür. Bu noktada, akıllı operatör şunlara bakabilir:

EğerUMOVIO zamanlar

BLOCK_OPERATOR_1

BLOCK_OPERATOR_2

son IF

Zihinsel operatörde, bir dekil zihin bükülebilir. Bu noktada, akıllı operatör şunlara bakabilir:

EğerUMOVI_1O zamanlar

BLOCK_OPERATOR_1

ElseIfUMOVI_2O zamanlar

BLOCK_OPERATOR_2

Başka

sonEğer

popo 1. Şekil l'deki algoritma için programın bir bölümünü yazın. 3.3.

popo 2.Şekil l'deki algoritma için programın bir bölümünü yazın. 3.4.

3.5. Vaka Operatörünü Seçin

Select Case operatörü manuel olarak seçer, hatada aynı değerde bir değer varsa, izin verilen maksimum sayıda değer varsa farklı bir değer seçilmesi gerekir. Vіn ayrıca akıllı operatörlere de atıfta bulunur, ancak başka bir görünüm olabilir:

Vaka SeçREVIRATED_VIRAZ

durumVALUE_1

OPERATÖRLER_1

durumDEĞER_ 2

OPERATÖRLER_ 2

. . .

durumVALUE_N

OPERATÖRLER_N

[ durumBaşka

Öte yandan_ OPERATÖRLER]

Seçimi Bitir

REVIRATED_VIRAZ belki bir anne, skaler bir tip ol, krim konuşma. DEĞER belirli bir miktara kadar değer veya aralık ekleyin, su takviyesi bir ve bir topaklar.

Tip DEĞER suçlu zbіgatisya z tipi REVİRAZI_VIRAZI.

Geri sayılan REVIRATED_VIRAZ. Anlamlardan biriyle kaç anlam birlikte gelir? VALUE_I, sonra kazan OPERATÖRLER_I Seçimi Bitir. Bu değer aynı değerlerle değişmez VALUE_I, sonra kazan Diğer_operatörler bu kontrolün operatöre devredildiği, sonraki maliyetin ne olduğu Seçimi Bitir

Örneğin.Şekil l'deki algoritma için programın bir bölümünü yazın. 3.5, S değişiminin değerini, n değişiminin değeri olarak nadas olarak belirler.

3.6. döngü operatörü

Döngüsel bir numaralandırma işleminin uygulanması için, yani bir veya daha fazla operatör, bir veya daha fazla operatör, bir döngü operatörü olarak hizmet eder. için…Sonraki, bir sonraki sözdizimi olabilir:

İçinÇOCUK=START_VALUETÖEND_VALUEadımCROC

BLOCK_OPERATOR

BLOCK_OPERATOR

SonrakiLICHILNYK

For…Next döngüsü, değişikliğin değeri üzerinde yinelenir LICHILNYK, döngünün bir parametresi olarak, koçandan belirlenen değişim mahsulünden son değere kadar. Bununla, lichnik'in yeni bir kutanöz değeri ile döngü gövdesindeki operatör bloğunu takip etmek güvenlidir. Yakscho adımCROC tasarım vіdsutnya'da, o zaman işin pahalı olduğu kilide dikkat etmeniz gerekir 1. Operatörün arkasında Çıkış İçinönce döngü ifadesinden çıkabilirsiniz LICHILNYK kalan değere ulaşın.

Bir dizi benzer nesneden nesneleri numaralandırmak için, örneğin bir aralık veya diziden ortada, döngü operatörünü manuel olarak seçin İçin…Her… Sonraki.

Her biri içinelemanİçindegrup

ENGELLEMEK_ ŞEBEKE

BLOCK_OPERATOR

Sonrakieleman

VBA'da, bilinmeyen sayıda tekrar içeren döngüleri düzenlemek için diğer döngü operatörleri eklenir:

peredumovoy ile döngüler YapmakSüredöngü,

YapmakDeğindöngü;

postumlu döngüler - YapmakdöngüSüre,

YapmakdöngüDeğin.

Döngüdeki cx deyimlerinin sözdizimi aşağıdadır:

Peredumovoy'dan bisikletYapmak Süre döngü

YaparkenUMOVI

BLOCK_OPERATOR

BLOCK_OPERATOR

Peredumovoy'dan bisikletYapmak Değin döngü

YapmakDeğinUMOVI

BLOCK_OPERATOR

BLOCK_OPERATOR

Ölümünden sonra döngüsüYapmak döngü

ENGELLEMEK_ ŞEBEKE

BLOCK_OPERATOR

döngüUMOVI

Ölümünden sonra döngüsüYapmak Döngüye kadar

ENGELLEMEK_ ŞEBEKE

BLOCK_OPERATOR

Döngüye kadarUMOVI

Şebeke YapmakWhile… Döngü noktalarda, rıhtımlarda operatör bloğunun birkaç tekrarını emniyete alın UMOVI dorimuetsya ve operatör



Diğer Haberler

3.5.1 Akıllı ve çılgın geçişin operatörleri. Şebeke Eğer…Sonra başka

VBA zihin bükme, If...Then... Else operatörü, If inşa yuvalama

Akıllı geçiş operatörü- hareketli programlamanın en önemli ve en yaygın unsurlarından biridir. Çalışmalarının temel ilkesi basittir: zihinlere uygun olduğu (gerçek şu ki, herhangi bir dilin chibnisti olduğu) ve herhangi bir vikonnannya programının yanlışlığının bir ve diğer taraftan düzeltildiği yeniden düşünülür. VBA'nın iki akıllı atlama operatörü vardır: If… Then… Else ve Select Case.

Şebeke Eğer… O zaman... Else, programcılar arasında en popüler olanıdır. Yeni sözdizimi şöyle görünür:

Eğer Umova O zaman
Komut1

Kiminle:

  • umov- Gerçeğe dönüştürülen Viraz. Eğer doğruysa, o zaman Komut1 kutsanmıştır, eğer kötüyse - Komut2;
  • UmoviN- dodatkovі zihin, yakі saygı duyulabilir. Koku sallanıyorsa (viraz UmoviN doğrudur), o zaman KomandiN sallanıyordur.

If…Then... Else ifadesi çökecek:

  • bir aklın geçerliliği için yeniden düşünmek gerekirse ve aynı zamanda farklı zeka durumunda, diyu gibidir:

nSıcaklık< 10 Then

MsgBox "Ceketinizi giyin"

  • popo önünde olanları soymak gerekirse ve tutarsızlık zamanlarında vikonaty іnsu dіyu:

nSıcaklık< 10 Then

MsgBox "Ceketinizi giyin"

MsgBox "Rüzgarlığı giydirin"

  • on yıllık aklın geçerliliğine geri dönmek gerekirse (mantıksal operatörlerin seçimine saygı gösterin):

if(nSıcaklık< 10) And (bRain = True) Then

MsgBox "Ceketini giy ve bir şemsiye al"

  • Tıpkı ilk yankının False'a dönüşmesi gibi, daha dekil zihinler için onu yeniden doğrulamak gerekir (bu durumda ElseIf'i çevirmek kolaydır):

Eğer (bIGoInCar = Doğru) O zaman

MsgBox "Araba için elbise"

ElseIf nSıcaklık< 10 Then

MsgBox "Ceketinizi giyin"

MsgBox "Gömleğe gidebilirsiniz"

Bu uygulama için, BIGoInCar parçaları Boolean türüne değiştirilir ve kendi başlarına True veya False değerlerini kabul eder, ilk satır şöyle görünebilir:

Eğer bigoInCar ise…

Deyakі shkodo vykoristannya'ya saygı duyarsa…Sonra… Başka:

  • O zaman anahtar sözcük Olabilirse ile aynı satırda olabilir. Yogayı bir sonraki sıraya aktarırsanız, bir af hakkında bir hatırlatma göreceksiniz;
  • Komutu yaymak istiyorsanız, vikon yapmak gerekiyorsa, doğruysa, neyin düzeltildiğini düşünün, If ve Then ile aynı satırda, End If yazamazsınız:

nSıcaklık< 10 Then MsgBox "Одеть куртку"

  • Pekala, bir sürü komut veya Else / ElseIf yapıları kazanırsanız, End If, örneğin, obov'yazkovo yazmak gerekir - aksi takdirde, sözdizimsel bir af vardır.
  • If…Then ifadesi için komut bloklarını görmek için adımların seçilmesi önerilir. Aksi takdirde kodu okumak önemli olacaktır.
  • Eğer ... O zaman ifadeler birer birer iç içe yerleştirilebilir:

MyVar = 5 ise

MsgBox "MyVar=5"

MyVar = 10 ise

MsgBox "MyVar=10"

tabletler