Pernyataan kondisi vba. Operator cabang VBA: pilihan sederhana

Itu fungsi JIKA di VBA adalah salah satu yang paling sering digunakan dari semua pernyataan. Fungsi IF memeriksa apakah kondisi yang ditentukan terpenuhi atau tidak. Fungsi IF di VBA bekerja dengan cara yang sedikit berbeda dari cara kerjanya di Excel. Di Excel, fungsi IF melakukan dua hal: Ini memeriksa apakah kondisi yang diberikan mengevaluasi ke TRUE atau FALSE dan kemudian mengembalikan nilai untuk digunakan berdasarkan evaluasi yaitu IF ( kondisi, return_value_if_condition_true, return_value_if_condition_false). Namun, fungsi IF di VBA hanya melakukan bagian pertama, yaitu. periksa apakah kondisi bernilai TRUE atau FALSE. Langkah-langkah yang harus diambil dalam salah satu skenario seperti yang ditentukan menggunakan pernyataan THEN tambahan.

Menggunakan fungsi IF sederhana di VBA

Berikut adalah contoh dari fungsi JIKA... Bagian kode VBA ini hanya memeriksa apakah kondisi yang ditentukan (yaitu 1> 4) dievaluasi ke TRUE atau FALSE. Dalam hal ini, kami hanya menentukan langkah-langkah yang harus diselesaikan ketika kondisi dievaluasi ke TRUE. Dalam hal ini, hasilnya akan ditampilkan di layar. Jika fungsi dievaluasi ke FALSE, kode VBA tidak akan melakukan apa pun.

1
2
3
4
5

Sub IF_FUNCTION ()
Jika 7 > 1 Maka
MsgBox "7 lebih besar dari 1"
Berakhir jika
Akhir Sub

Itu KEMUDIAN pernyataan pada dasarnya adalah arahan yang menunjukkan bahwa langkah-langkah yang segera mengikutinya harus dieksekusi jika kondisi tepat sebelum jika dievaluasi ke TRUE.

Fungsi IF biasanya diakhiri dengan deklarasi END IF yang memungkinkan aplikasi mengetahui bahwa itu adalah baris terakhir dari fungsi IF. Diberikan di bawah ini adalah bentuk fungsi IF yang sedikit lebih pendek. Perhatikan bahwa pernyataan END IF telah dihilangkan dalam hal ini dan dengan demikian tiga baris kode telah digabungkan menjadi satu.

Sub IF_FUNCTION_SHORT ()
Jika 7 > 1 Maka MsgBox "7 lebih besar dari 1"
Akhir Sub

Namun formulir ini harus digunakan hanya jika tidak ada LAIN atau LAIN JIKA pernyataan dibutuhkan. Mari kita lihat apa itu dan bagaimana mereka membantu meningkatkan fungsi IF.

Menggunakan fungsi IF dengan ELSE di VBA

Dalam contoh yang diberikan di atas, kita melihat bahwa fungsi IF akan dapat melakukan langkah-langkah hanya jika kondisinya dievaluasi ke TRUE. Tetapi bagaimana jika kita ingin menentukan langkah-langkah yang akan dilakukan ketika salah satu dari kondisi tersebut terpenuhi. Salah satu cara untuk mencapai percabangan dari fungsi IF adalah dengan menggunakan pernyataan ELSE. Sederhananya, pernyataan ELSE menyebabkan aplikasi menjalankan langkah-langkah yang disebutkan di blok ELSE ketika kondisi yang ditentukan dalam klausa IF dievaluasi menjadi FALSE.

Pada contoh kode VBA di bawah ini, kondisi dalam fungsi IF bernilai false, langkah-langkah yang disebutkan di blok ELSE dijalankan dengan hasil pesan “1 kurang dari 4” akan ditampilkan di layar. Beberapa langkah dapat ditambahkan ke blok agar semuanya dijalankan satu demi satu.

1
2
3
4
5
6
7

Sub IF_ELSEIF_FUNCTION ()
Jika 1 > 4 Maka

Lain:
MsgBox "1 kurang dari 4"
Berakhir jika
Akhir Sub

Menggunakan fungsi IF dengan ELSEIF dan ELSE: di VBA

Pernyataan ELSE mungkin didukung oleh pernyataan ELSEIF. Mereka biasanya digunakan untuk memeriksa kondisi tertentu dan jika semuanya mengevaluasi ke FALSE, langkah-langkah yang ditentukan dalam kondisi ELSE akhirnya akan dieksekusi. Pernyataan IF akan memeriksa kondisi yang diberikan. Jika kondisi itu ternyata FALSE, kondisi yang ditentukan dalam pernyataan ELSEIF pertama akan diperiksa. Jika itu juga ternyata FALSE, kondisi yang ditentukan dalam pernyataan ELSEIF kedua akan diperiksa, dan seterusnya dan seterusnya. Jika semua kondisi yang ditentukan dalam pernyataan IF dan ELSEIF ternyata FALSE, secara default langkah-langkah yang disebutkan di bawah blok ELSE: terakhir akan dieksekusi. Harap diingat bahwa jika ada beberapa pernyataan ELSEIF, pernyataan pertama yang bernilai TRUE akan dieksekusi dan setelah selesai, eksekusi kode akan pindah ke pernyataan END IF. Bahkan jika ada beberapa kondisi ELSEIF yang bernilai TRUE, hanya kondisi pertama yang bernilai TRUE yang akan dieksekusi.

1
2
3
4
5
6
7
8
9
10
11


Jika< > Lalu
MsgBox "1 lebih besar dari 4"
LainJika< > Lalu

LainJika< > Lalu

Lain< >:

Berakhir jika
Akhir Sub

Pada contoh di bawah ini, kondisi IF diperiksa terlebih dahulu. Karena dievaluasi ke FALSE, kondisi ELSEIF pertama dievaluasi, diikuti oleh yang kedua. Karena tidak satupun dari mereka mengevaluasi ke TRUE, langkah-langkah yang disebutkan dalam ELSE: kondisi dijalankan.

1
2
3
4
5
6
7
8
9
10
11

Sub IF_ELSEIF_ELSE_FUNCTION ()
Jika 1 > 4 Maka
MsgBox "1 lebih besar dari 4"
LainJika 2 > 4 Maka
MsgBox "2 lebih besar dari 4"
LainJika 3 > 4 Maka
MsgBox "3 lebih besar dari 4"
Lain:
MsgBox "1, 2 atau 3 lebih kecil dari 4"
Berakhir jika
Akhir Sub

Tip Singkat - Cara membuat pernyataan IF bekerja lebih cepat

Kedua potongan kode tampak serupa. Dua kondisi ELSEIF pada fungsi kedua telah ditukar. Manakah dari bagian kode VBA berikut yang menurut Anda dieksekusi lebih cepat?:
Berakhir jika
Selanjutnya saya
MsgBox Timer - t
Akhir Sub

Jawabannya adalah bahwa yang kedua dieksekusi jauh lebih cepat daripada yang pertama. Mengapa? Karena yang kedua perlu aplikasi untuk melewati baris kode yang lebih rendah sebelum menemukan kondisi yang bernilai TRUE. Ingat bahwa kondisi ELSEIF pertama yang jika ditemukan TRUE akan dieksekusi dan tidak ada kondisi lain yang dievaluasi, bahkan jika kondisi tersebut juga dievaluasi menjadi TRUE. Pada bagian pertama kode VBA, fungsi ELSEIF pada baris 6 dievaluasi menjadi TRUE sedangkan pada baris kedua, 5 memenuhi kriteria. Intinya, semakin besar kemungkinan kondisinya untuk dievaluasi ke TRUE, semakin awal ia harus ditempatkan dalam kode VBA, semuanya sama.

Struktur kontrol memungkinkan Anda untuk mengontrol urutan eksekusi program. Tanpa pernyataan kontrol, semua pernyataan program akan berjalan dari kiri ke kanan dan atas ke bawah. Namun, terkadang diperlukan untuk berulang kali mengeksekusi serangkaian instruksi tertentu secara otomatis, atau untuk memecahkan masalah secara berbeda, tergantung pada nilai variabel atau parameter yang ditentukan oleh pengguna saat runtime. Konstruksi kontrol dan loop digunakan untuk ini.

VBA mendukung konstruksi keputusan berikut:

Jika. ... ... Kemudian. ... ... Lain

6.1 Konstruk If. ... ... Kemudian

Jika. ... ... Kemudian digunakan ketika diperlukan untuk mengeksekusi satu atau sekelompok pernyataan, tergantung pada kondisi tertentu. Sintaks untuk konstruksi ini memungkinkan Anda untuk menentukannya dalam satu baris atau beberapa baris program:

If condition Kemudian ekspresi If condition Kemudian ekspresi End If

Kondisi biasanya merupakan perbandingan sederhana, tetapi dapat berupa ekspresi apa pun dengan nilai yang dihitung. Nilai ini ditafsirkan sebagai Salah jika nol, dan setiap bukan nol dianggap Benar. Jika kondisinya benar, maka semua ekspresi setelah kata kunci Then dieksekusi. Untuk mengeksekusi satu pernyataan secara kondisional, Anda dapat menggunakan sintaks baris tunggal dan sintaksis multi baris (konstruksi blok).

Dua operator berikut ini setara:

Jika adaTanggal< Now Then anyDate = Now If anyDate < Now Then anyDate = Now End If

Perhatikan bahwa sintaks dari pernyataan If. ... ... Kemudian tidak menggunakan pernyataan End If untuk satu baris. Untuk mengeksekusi urutan pernyataan jika suatu kondisi benar, gunakan klausa blok If. ... ... Kemudian. ... ... Berakhir jika.

Jika adaTanggal< Now Then anyDate = Now Timer.Enabled = False " Запретить таймер. End If

Jika kondisinya salah, maka pernyataan setelah kata kunci Then tidak dieksekusi, dan kontrol diteruskan ke baris berikutnya (atau baris setelah pernyataan End If dalam konstruksi blok).

6.2 Jika membangun. ... ... Kemudian. ... ... Lain

mendefinisikan beberapa blok pernyataan, salah satunya akan dieksekusi tergantung pada kondisinya:

Jika kondisi1 Kemudian ekspresi1 LainJika kondisi2 Kemudian ekspresi2. ... ... Ekspresi lain -n Akhiri Jika

Saat dieksekusi, kondisi1 diperiksa terlebih dahulu. Jika salah, VBA memeriksa kondisi berikutnya2, dan seterusnya, sampai menemukan kondisi yang benar. Ketika VBA menemukannya, ia mengeksekusi blok pernyataan yang sesuai dan kemudian mentransfer kontrol ke pernyataan setelah pernyataan End if. Dalam konstruksi ini, Anda dapat menyertakan blok pernyataan Else yang dijalankan VBA jika tidak ada kondisi yang terpenuhi.

Jika. ... ... Kemudian. ... ... ElseIf benar-benar hanya kasus khusus dari konstruksi If. ... ... Kemudian. ... ... Lain. Perhatikan bahwa konstruksi ini dapat berisi sejumlah blok ElseIf, atau bahkan tidak sama sekali. Blok Else dapat dimasukkan terlepas dari ada atau, sebaliknya, tidak adanya blok ElseIf.

Sub contoh 1 () Dim a As Single, b As Single, x As Single Dim z As Double Call read ("A1", a) Call read ("B1", b) Misalkan x = CSng (InputBox ("enter x" , "Input data", 0)) Jika x<= a Then z = Sin(x) ElseIf x >= b Kemudian z = Tan (x) Lain: z = Cos (x) End If Call out ("C1", z) End Sub

Perhatikan bahwa Anda dapat menambahkan sejumlah blok Elself ke pernyataan If Anda. ... ... Kemudian. Namun, jumlah blok Elself bisa menjadi sangat besar sehingga If. ... ... Maka itu akan menjadi sangat rumit dan tidak nyaman. Dalam situasi seperti itu, konstruksi pengambilan keputusan lain harus digunakan - Pilih Kasus.

6.3 Pilih Konstruksi Kasus

Konstruk Select Case adalah alternatif dari konstruk If. ... ... Kemudian. ... ... Lain dalam kasus eksekusi blok yang terdiri dari satu set besar pernyataan. Konstruk Select Case menyediakan kemampuan yang mirip dengan konstruk If. ... ... Kemudian. ... ... Lain, tetapi itu membuat kode Anda lebih mudah dibaca ketika Anda memiliki banyak pilihan.

Konstruk Select Case beroperasi pada satu ekspresi yang dapat diuji, yang dievaluasi sekali setelah masuk ke konstruk. Kemudian VBA membandingkan hasilnya dengan nilai yang ditentukan dalam pernyataan Kasus dari konstruk. Jika kecocokan ditemukan, blok pernyataan yang terkait dengan pernyataan Kasus akan dieksekusi:

Pilih Kasus test_expression]]. ... ... ] Akhiri Pilih

Setiap daftar ekspresi adalah daftar satu atau lebih nilai. Jika ada lebih dari satu nilai dalam satu daftar, mereka dipisahkan dengan koma. Setiap blok pernyataan berisi beberapa pernyataan atau tidak sama sekali. Jika ternyata nilai yang dihitung dari ekspresi yang diuji sesuai dengan nilai dari beberapa pernyataan Kasus, maka blok pernyataan yang terkait dengan pernyataan Kasus pertama dari semua kecocokan yang ditemukan dieksekusi. VBA mengeksekusi blok pernyataan yang terkait dengan pernyataan Kasus Lain (perhatikan bahwa itu opsional) jika tidak ada nilai ekspresi yang cocok ditemukan dengan nilai dari semua daftar pernyataan Kasus.

Mari kita perhatikan contoh menghitung fungsi

Sub contoh2 () Const pi2 = 1,57 Dim x As Single Dim z As Double Let x = CSng (InputBox ("enter x", "Data input", 0)) Pilih Case x Case -pi2 z = Sin (x) Case 0 z = Cos (x) Kasus pi2 z = Tan (x) Kasus Lain MsgBox "Data input salah!" Keluar Sub Akhir Pilih Panggil ("D1", z) Akhiri Sub

Perhatikan bahwa konstruk Select Case mengevaluasi ekspresi hanya sekali saat memasukkannya, dan dalam If. ... ... Kemudian. ... ... Lain, ekspresi yang berbeda dievaluasi untuk setiap pernyataan Elself. Jika. ... ... Kemudian. ... ... Else dapat diganti dengan Select Case hanya jika pernyataan If dan setiap pernyataan Elself mengevaluasi ekspresi yang sama.

Sejauh ini, kami telah mempertimbangkan prosedur dan fungsi yang dijalankan VBA dalam urutan linier - VBA mulai mengeksekusi kode dari pernyataan pertama setelah baris deklarasi prosedur (fungsi) dan terus mengeksekusi setiap pernyataan baris demi baris hingga Sub Akhir (End Fungsi) pernyataan tercapai. ... Algoritma linier seperti itu dapat diwakili oleh diagram blok berikut:

Namun, cukup umum untuk prosedur atau fungsi untuk melakukan tindakan yang berbeda dalam kondisi yang berbeda. Situasi ini diilustrasikan oleh diagram blok berikut:



Operator yang menjalankan peran program percabangan berdasarkan suatu kondisi disebut operator lompat bersyarat.

Operator lompatan bersyarat yang paling sederhana adalah operator Jika kemudian; Jika..Lalu..Lain... Pernyataan pertama memungkinkan Anda untuk memilih satu cabang prosedur (bagan alir kiri), sedangkan pernyataan kedua memungkinkan Anda untuk memilih dari dua cabang alternatif kode prosedur (bagan alir kanan) berdasarkan penilaian apakah kondisinya Benar atau Salah.


Jika..maka sintaks

Pilihan 1:
Jika Kondisi Kemudian Pernyataan

Pilihan 2:
Jika Kondisi Kemudian
Pernyataan
Berakhir jika


Kondisi- ekspresi logis;

Pernyataan


Opsi pertama mengharuskan penulisan operator dalam satu baris, sedangkan di bagian Pernyataan Anda dapat menentukan beberapa operator, memisahkannya dengan titik dua.

Logikanya adalah sebagai berikut: VBA pertama mengevaluasi ekspresi boolean yang disajikan di bagian Kondisi; jika ekspresi boolean ini Benar, maka pernyataan dari bagian Pernyataan akan dieksekusi; kemudian VBA melanjutkan mengeksekusi kode mengikuti baris If..then (Opsi 1) atau End If (Opsi 2). Jika ekspresi logika adalah False, maka pernyataan dari bagian Pernyataan akan dilewati dan kode yang mengikuti bagian ini akan dieksekusi.


Di bawah ini adalah daftar penggunaan dasar varian pertama penulisan If..then:






Dan sekarang untuk opsi kedua:



Perhatikan bahwa pernyataan di bagian Pernyataan dibuat menjorok (menggunakan tab). Ini adalah poin penting. Anda harus segera membiasakan diri dengan desain kode program seperti itu - ini meningkatkan keterbacaannya dan sangat memudahkan pencarian kesalahan.


Sintaks If..then..Else

Pilihan 1:
Jika Kondisi Kemudian Pernyataan Lain Pernyataan Lain

Pilihan 2:
Jika Kondisi Kemudian
Pernyataan
Lain
Pernyataan Lain
Berakhir jika


Kondisi- ekspresi logis;

Pernyataan, Pernyataan Lain- satu, beberapa atau tidak ada pernyataan VBA.


Dengan analogi dengan If..then - opsi pertama mengharuskan penulisan operator dalam satu baris, sedangkan di bagian Statements dan ElseStatements Anda dapat menentukan beberapa operator, memisahkannya dengan titik dua.

Opsi kedua memungkinkan Anda untuk menentukan beberapa operator pada baris yang berbeda.

Logikanya adalah sebagai berikut: VBA pertama mengevaluasi ekspresi boolean yang disajikan di bagian Kondisi; jika ekspresi boolean ini Benar, maka pernyataan dari bagian Pernyataan akan dieksekusi; kemudian VBA melanjutkan mengeksekusi kode mengikuti baris If..then (Opsi 1) atau End If (Opsi 2). Jika ekspresi logika adalah False, maka operator bagian ElseStatements akan dieksekusi.

Operator VBA Dasar

Komentar (0)

3.1. Aturan pencatatan operator

Saat merekam operator, Anda harus mematuhi aturan berikut:

Setiap pernyataan baru ditulis pada baris baru.

Untuk menulis beberapa operator dalam satu baris, pisahkan dengan titik dua (:).

Jika operator tidak cocok pada satu baris, maka Anda harus memberi spasi dan garis bawah (_) di akhir baris, dan kemudian melanjutkan bagian yang tidak sesuai pada baris berikutnya.

3.2. Operator penugasan

Operator penugasan digunakan ketika variabel perlu diberi nilai baru. Ini memiliki sintaks berikut:

NAMA VARIABEL= EKSPRESI

Ekspresi di sisi kanan dievaluasi terlebih dahulu, dan kemudian hasilnya ditetapkan ke variabel di sisi kiri.

sebagai contoh... Tulislah ekspresi matematika berikut dengan menggunakan operator penugasan:

Dalam VBA, ekspresi ini dapat ditulis sebagai operator berikut:

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

3 .3. Operator I/O

3 .3.1. Operator dan fungsi MsgBox

Operator Kotak Pesan melakukan output informasi di kotak dialog dan mengatur mode tunggu bagi pengguna dengan menekan tombol.

Ini memiliki sintaks berikut:

Kotak Pesan Pesan [, Tombol] [, Judul]

Argumen:

Pesan - argumen wajib yang menentukan pesan informasi yang akan ditampilkan di jendela. Dapat terdiri dari beberapa baris teks, digabungkan dengan tanda & ... Penggunaan dalam argumen ini Kr (13) mengarah ke baris baru saat menampilkan informasi.

Tombol - nilai argumen ini menentukan kategori tombol yang muncul di jendela. Nilai argumen tombol juga menentukan apakah ada ikon yang muncul di jendela. Jika Anda tidak menentukan tombol mana yang harus ditampilkan di jendela pesan, maka nilai default yang sesuai dengan tombol OK akan digunakan. Meja 3.1 menunjukkan kemungkinan kombinasi tombol dan ikon di jendela pesan.

tajuk - mengatur judul jendela.

Fungsi Kotak Pesan mengembalikan Integer yang menunjukkan tombol mana yang diklik di kotak dialog.

Tabel 3.1. Nilai yang valid untuk variabel tombol

Tampilan

Argumen

tombol oke

Tombol OK dan Batal

Tombol Ya dan Tidak

Ya, Tidak dan tombol Batal

Tombol Berhenti, Ulangi, dan Abaikan

VbAbortRetryAbaikan

Tombol Redo dan Cancel.

Tanda informasi

Tanda tanya

Tanda seru

sebagai contoh... Menampilkan pesan tentang tanggal saat ini.

MsgBox "Hari ini ada di kalender" & Tanggal, "Perhatian"

Hasilnya, jendela berikut akan ditampilkan (Gambar 3.1).

Setelah mengklik tombol OK, kotak pesan akan ditutup dan program akan melanjutkan eksekusi dari pernyataan tepat di belakang panggilan ke MsgBox.

3.3.2. Fungsi Kotak Masukan

Fungsi Kotak Masukan memasukkan nilai variabel menggunakan jendela input dan memiliki sintaks berikut:

Nama Variabel = Kotak Masukan (Pesan [, Judul] )

Argumen:

Pesan - argumen yang diperlukan. Mengatur pesan informasi di jendela, biasanya menjelaskan arti dari nilai yang dimasukkan

tajuk - mengatur judul jendela.

sebagai contoh, Masukkan nilai variabel N dari keyboard, dengan nilai default 10.

Untuk melakukan ini, Anda dapat menggunakan operator berikut:

N = InputBox("Masukkan N", "Masukan data awal", 10)

Hasilnya, jendela berikut akan ditampilkan untuk memasukkan nilai variabel N (Gambar 3.2).

Jika nilai default sesuai dengan pengguna, maka setelah mengklik tombol OK, jendela input akan ditutup, variabel N akan diberi nilai 10, dan eksekusi program akan dilanjutkan dari operator segera di belakang panggilan. Kotak Masukan.

Jika nilai default tidak sesuai dengan pengguna, maka sebelum mengklik tombol OK, Anda harus memasukkan nilai yang diinginkan untuk variabel N.

3 .empat. Pernyataan JIKA bersyarat

Untuk mengimplementasikan proses komputasi percabangan di VBA, digunakan operator Jika… Lalu… Lain, yang merupakan bentuk pemeriksaan kondisi yang paling sederhana. Ini memiliki sintaks berikut:

JikaKONDISIKemudianOPERATOR_1ElainOPERATOR_2

OPERATOR_1 dijalankan jika KONDISI benar, jika tidak dieksekusi OPERATOR_2. Dalam hal ini, pernyataan If… Then… Else ditulis dalam satu baris.

KONDISI adalah ekspresi boolean. Hasil ekspresi selalu boolean. Ekspresi bisa sederhana atau kompleks. Saat menulis kondisi sederhana, semua kemungkinan operasi dari hubungan yang ditunjukkan pada Tabel 1 dapat digunakan. 3.2.

Meja3 .2. Hubungan logis

Operasi

Nama

Ekspresi

Hasil

Benar jika A sama dengan B

Benar jika A tidak sama dengan B

Benar jika A lebih besar dari B

Benar jika A lebih kecil dari B

Lebih atau sama

Benar jika A lebih besar atau sama dengan B

Kurang atau sama

Benar jika A lebih kecil atau sama dengan B

Kondisi kompleks dibentuk dari kondisi sederhana dengan menggunakan operasi logika dan tanda kurung. Daftar operasi logis diberikan dalam tabel. 3.3.

Meja3 .3. Operasi logika

Nama

Ekspresi

Hasil

Logis
penyangkalan

Logika DAN

Logika OR

Dalam pernyataan bersyarat, diperbolehkan untuk menggunakan blok pernyataan alih-alih pernyataan apa pun. Dalam hal ini, operator kondisional adalah:

JikaKONDISIKemudian

OPERATOR_BLOCK_1

OPERATOR_BLOCK_2

akhir akuf

Beberapa kondisi dapat diperiksa dalam pernyataan bersyarat. Dalam hal ini, operator kondisional adalah:

JikaKONDISI_1Kemudian

OPERATOR_BLOCK_1

LainJikaKONDISI_2Kemudian

OPERATOR_BLOCK_2

Lain

AkhirJika

Contoh 1... Tulis bagian dari program untuk algoritma pada Gambar. 3.3.

Contoh 2. Tulis bagian dari program untuk algoritma pada Gambar. 3.4.

3.5. Pilih pernyataan Kasus

Pernyataan Select Case nyaman digunakan ketika, tergantung pada nilai dari beberapa ekspresi yang memiliki kumpulan nilai valid yang terbatas, Anda perlu melakukan tindakan yang berbeda. Ini juga mengacu pada pernyataan bersyarat, tetapi memiliki bentuk yang berbeda:

Pilih KasusDIUJI_EXPRESSION

KasusVALUES_1

OPERATOR_1

KasusNILAI_ 2

OPERATOR_ 2

. . .

KasusVALUES_N

OPERATOR_N

[ KasusLain

JIKA TIDAK_ OPERATOR]

Akhiri Pilih

DIUJI_EXPRESSION dapat dari semua jenis skalar kecuali nyata. NILAI terdiri dari sejumlah nilai atau rentang yang berubah-ubah, dipisahkan dengan koma.

Sebuah tipe NILAI harus sesuai dengan jenisnya DIUJI_EXPRESSION.

Pertama, itu menghitung DIUJI_EXPRESSION... Jika nilainya cocok dengan salah satu nilai VALUES_I, kemudian OPERATORS_I Akhiri Pilih... Jika nilainya tidak cocok dengan salah satu nilai VALUES_I, kemudian ELSE_OPERATORS dan kontrol ditransfer ke operator yang berdiri setelah Akhiri Pilih

Sebagai contoh. Tulis bagian dari program untuk algoritma pada Gambar. 3.5, yang menentukan nilai variabel S tergantung pada nilai variabel n.

3.6. Operator lingkaran

Untuk mengimplementasikan proses komputasi siklis, yaitu, beberapa eksekusi dari satu atau lebih operator, operator loop digunakan Untuk selanjutnya yang memiliki sintaks berikut:

UntukCOUNTER = START_VALUETHaiCON_VALUELangkahLANGKAH

BLOK OPERATOR

BLOK OPERATOR

LanjutMELAWAN

Loop For ... Next mengulangi nilai-nilai variabel MELAWAN, yang merupakan parameter siklus, dari nilai awal hingga akhir dengan langkah perubahan yang ditentukan. Ini memastikan bahwa blok pernyataan dari badan loop dieksekusi pada setiap nilai penghitung yang baru. Jika sebuah LangkahLANGKAH tidak ada dalam konstruksi, maka secara default diasumsikan bahwa langkahnya adalah 1. Menurut operator Keluar Untuk adalah mungkin untuk keluar dari pernyataan loop sebelumnya MELAWAN mencapai nilai terakhir. *

Untuk mengulangi objek dari sekelompok objek serupa, misalnya, sel dari elemen rentang atau array, akan lebih mudah untuk menggunakan operator loop Untuk ...Masing-masing… Selanjutnya.

Untuk setiapElemenDiKelompok

BLOK_ OPERATOR

BLOK OPERATOR

LanjutElemen

Di VBA, operator loop lain digunakan untuk mengatur loop dengan jumlah pengulangan yang telah ditentukan:

loop dengan prasyarat - MelakukanSementaralingkaran,

MelakukanSampailingkaran;

loop dengan postcondition - MelakukanlingkaranSementara,

MelakukanlingkaranSampai.

Berikut adalah sintaks untuk pernyataan loop ini:

"Loop dengan prasyaratMelakukan Sementara lingkaran

lakukan sambilKONDISI

BLOK OPERATOR

BLOK OPERATOR

"Loop dengan prasyaratMelakukan Sampai lingkaran

MelakukanSampaiKONDISI

BLOK OPERATOR

BLOK OPERATOR

"Loop dengan postconditionMelakukan Putar sambil

BLOK_ OPERATOR

BLOK OPERATOR

Putar sambilKONDISI

"Loop dengan postconditionMelakukan Putar Sampai

BLOK_ OPERATOR

BLOK OPERATOR

Putar SampaiKONDISI

Operator MelakukanWhai ... Loop memberikan pengulangan beberapa blok pernyataan selama KONDISI dihormati, dan operator



Berita lainnya

3.5.1 Operator cabang bersyarat dan tidak bersyarat. Operator jika ...Lalu ... Lain

Memeriksa Kondisi di VBA, If ... Then ... Else Statement, Nested If Constructs

Operator lompat bersyarat adalah beberapa elemen yang paling penting dan sering digunakan dalam bahasa pemrograman. Prinsip umum pekerjaan mereka sederhana: kepatuhan dengan beberapa kondisi diperiksa (kebenaran atau kesalahan ekspresi apa pun) dan, tergantung pada ini, eksekusi program diarahkan di satu atau beberapa cabang lain. VBA menyediakan dua pernyataan cabang bersyarat: If… Then… Else dan Select Case.

Operator Jika kemudian... Lain adalah yang paling populer dengan programmer. Sintaks lengkapnya terlihat seperti ini:

Jika Kondisi Maka
tim1

Di mana:

  • Kondisi- ekspresi yang diuji kebenarannya. Jika benar, maka Perintah1 dijalankan, jika salah - Perintah2;
  • KondisiN- kondisi tambahan yang juga dapat diperiksa. Jika dieksekusi (ekspresi ConditionN benar), maka CommandsN dieksekusi.

Pernyataan If ... Then ... Else berlaku:

  • ketika Anda perlu memeriksa kepatuhan dengan satu kondisi dan, dalam hal kepatuhan, lakukan beberapa tindakan:

Jika nSuhu< 10 Then

MsgBox "Pakai jaket"

  • ketika Anda perlu melakukan hal yang sama seperti pada contoh sebelumnya, dan jika terjadi inkonsistensi, lakukan tindakan lain:

Jika nSuhu< 10 Then

MsgBox "Pakai jaket"

MsgBox "Pakai jaket"

  • ketika Anda perlu memeriksa kepatuhan dengan beberapa kondisi (perhatikan penggunaan operator boolean):

Jika (nSuhu< 10) And (bRain = True) Then

MsgBox "Pakai jaket dan bawa payung"

  • ketika, jika pemeriksaan pertama mengembalikan False, Anda perlu memeriksa kepatuhan dengan beberapa kondisi lagi (dalam hal ini, lebih mudah untuk menggunakan ElseIf):

Jika (bIGoInCar = True) Maka

MsgBox "Pakaian untuk mobil"

LainJika nSuhu< 10 Then

MsgBox "Pakai jaket"

MsgBox "Bisa pakai baju"

Dalam contoh ini, karena bigoInCar adalah variabel Boolean dan dirinya sendiri mengevaluasi ke True atau False, baris pertama mungkin terlihat seperti ini:

Jika bigoInCar Kemudian ...

Beberapa catatan tentang penggunaan If ... Then ... Else:

  • kata kunci Then harus berada pada baris yang sama dengan If dan kondisi. Jika Anda memindahkannya ke baris berikutnya, pesan kesalahan akan ditampilkan;
  • jika Anda menempatkan perintah yang perlu dijalankan jika kondisi yang diperiksa benar, pada baris yang sama dengan If dan Then, maka End If dapat dihilangkan:

Jika nSuhu< 10 Then MsgBox "Одеть куртку"

  • jika Anda menggunakan beberapa perintah atau konstruksi Else / ElseIf, maka End If harus ditulis di akhir, jika tidak akan terjadi kesalahan sintaks.
  • untuk ekspresi If… Then, sangat disarankan agar Anda menggunakan indentasi untuk menyorot blok perintah. Jika tidak, akan sulit untuk membaca kodenya.
  • Jika ... Maka pernyataan dapat bersarang satu sama lain:

Jika MyVar = 5 Maka

MsgBox “MyVar = 5”

Jika MyVar = 10 Maka

MsgBox “MyVar = 10”