VBA taqqoslash operatorlari. VB mantiqiy operatorlari Vba rad etish

Ushbu operatorlar ikkita ifodani taqqoslaydilar, agar ular teng bo'lsa, yo'q bo'lsa, ular qanday farqlanadi. "IsNot" va "Like" alohida yordam sahifalarida batafsil muhokama qilinadi. Taqqoslash operatorlarining munosabatlari ushbu sahifada muhokama qilinadi.

Natija \u003d ekspression1 taqqoslash operatori ekspression2 natija \u003d ob'ekt1 ob'ekti2 natija \u003d mag'lubiyatga o'xshash naqsh

natija
Majburiy. Natijada taqqoslash natijasini ifodalovchi mantiqiy qiymat olinadi.

ifoda
Majburiy. Ixtiyoriy ifoda.

taqqoslash operatori
Majburiy. Har qanday relyatsion taqqoslash operatori.

ob'ekt1, ob'ekt2
Majburiy. Har qanday havola qilingan ob'ektning nomi.

mag'lubiyat
Majburiy. String turidagi ixtiyoriy ifoda.

naqsh
Majburiy. Har qanday String ifodasi yoki belgilar doirasi.

Quyidagi jadvalda taqqoslash operatorlari va natijaning to'g'ri yoki noto'g'ri ekanligini aniqlaydigan shartlar ro'yxati keltirilgan.

Eslatma

Satrlarni taqqoslashda satr ifodalari ularning alifbo tartibida tartibiga qarab baholanadi, bu Option Compare ga bog'liq.

Option Compare Binary - belgilarning ichki ikkilik tasviri bilan belgilanadigan tartiblash tartibi asosida satrlarni taqqoslash usulini belgilaydi. Saralash tartibi kod sahifasi bilan belgilanadi. Quyidagi misol odatdagi ikkilik tartiblash tartibini ko'rsatadi.

A< B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

Matnni taqqoslash opsiyasi satrlarni taqqoslash usulini dasturning mintaqaviy sozlamalari bilan belgilanadigan tartiblash tartibi (harfga sezgir bo'lmagan) asosida aniqlaydi. Matnni taqqoslash Option-ni o'rnatganingizda va belgilarni saralanganingizda, avvalgi misolda quyidagi matn tartiblash tartibi qo'llaniladi:

(A \u003d a)< (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z)

Mahalliy bog'liq

Matnni taqqoslash opsiyasi o'rnatilganda, satrlarni taqqoslash natijasi dastur ishlayotgan joyga bog'liq bo'lishi mumkin. Bir mintaqadagi ikkita belgini teng deb hisoblash mumkin, ammo boshqasida emas. Kirish urinishlariga ruxsat berish kabi muhim qarorlarni qabul qilish uchun mag'lubiyat taqqoslashdan foydalanishda siz mahalliy sezgirlikni hisobga olishingiz kerak. Option Compare Binary-ni o'rnatishni yoki mahalliy tilni biladigan qo'ng'iroqni ko'rib chiqing.

Ob'ekt ifodalari bilan taqqoslash operatorlariga Option Strict On-ga ruxsat berilmaydi. Option Strict (O'chirilgan) holati o'chirilgan bo'lsa yoki express1 yoki express2 ob'ekti bo'lsa, ish vaqti turlari ularni qanday taqqoslanishini aniqlaydi. Quyidagi jadvalda ifodalarni taqqoslash va ishlash vaqtida aniqlangan operandlar turiga qarab taqqoslash natijalari ko'rsatilgan:

Raqamli taqqoslash Hech narsani 0 ga baholaydi. Ipli taqqoslash Hech narsani "" (bo'sh satr) deb qabul qiladi.

Taqqoslash operatorlari (< . <= , > , >= , = , <>) bo'lishi mumkin g'amgin; bu shuni anglatadiki, agar operand shu sinf yoki tuzilmaning turiga kirsa, sinf yoki tuzilma o'zini tutishini bekor qilishi mumkin. Agar sizning kodingiz ushbu operatorlardan bunday sinf yoki tuzilish uchun foydalansa, uning bekor qilingan xatti-harakatini tushunganingizga ishonch hosil qiling. Qo'shimcha ma'lumot uchun qarang

Barcha arifmetik, taqqoslash, mantiqiy va birlashtirish operatorlari bu erda batafsil bayon etilgan. Ushbu operatorlar haqida hamma narsani to'plashga harakat qildim. Har bir operatorga misol keltirilgan. Tavsiflarni men VB5 standart yordamidan tarjima qildim.

Arifmetik operatorlar

operator ^ (daraja)

Ushbu operator raqamni quvvat darajasiga ko'tarish uchun mo'ljallangan.

Sintaksis:

natija = raqam^ kuch

Tanlovlar:

natija
raqam
kuch - zarur; har qanday raqamli ifoda

Izohlar:

raqam faqat manfiy bo'lishi mumkin kuch butun son Agar bitta ifodada bir nechta ^ operator ishlatilsa, u holda baholash chapdan o'ngga to'g'ri keladi. Odatda, natija turi Ikki baravar bo'ladi. Ammo, agar yoki kuch, yoki raqam - Nol ifodasi, keyin natija shuningdek Null.

Misol:

Xira MyValue
MyValue \u003d 2 ^ 2 "4 qaytadi.
MyValue \u003d 2 ^ 3 ^ 3 " Qaytariladi 512 (2^3=8, 8^3=512)
MyValue \u003d (-5) ^ 3 " Qaytariladi -125.

Maslahat:

Agar siz raqamni doimiy quvvatga ko'tarishingiz kerak bo'lsa, unda bir nechta operatorlardan foydalanganda yaxshiroq bo'ladi - birdan ko'paytirish - eksponentatsiya, o'zingiz uchun baho bering, iborani hisoblash bilan million o'tish davri:

test1 \u003d 2 ^ 8 "893 ms
test1 \u003d 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 "130ms!

operator * (ko'paytirish)

Ikki raqamni ko'paytirish uchun ishlatiladi.

Sintaksis:

natija = raqam1* №2

Tanlovlar:

natija - talab qilinadi; har qanday raqamli o'zgaruvchi
raqam1 - talab qilinadi; har qanday raqamli ifoda
№2 - talab qilinadi; har qanday raqamli ifoda

Izohlar:

Natijaning ma'lumotlar turi odatda ikkita raqamning eng aniq turi bilan bir xil bo'ladi. Eng yuqori darajadan pastgacha aniqlik tartibi - Bayt, Butun son, Uzoq, Yagona, Valyuta, Ikki, o'nlik. To'g'ri, istisnolar mavjud:

  • Agar bitta va uzunlik ko'paytirilsa, natijada ikki baravar bo'ladi
  • Agar ma'lumotlar turi bo'lsa natija - Long Single yoki Date, bu ifoda natijalariga mos kelmaydi, natijada Double o'z ichiga olgan Variantga aylantiriladi.

Agar raqam1 yoki №2

Ko'paytirishda aniqlik tartibi qo'shish va ayirishda ishlatilganidan farq qiladi.

Misol:

Xira MyValue
MyValue \u003d 2 * 2 "4 qaytadi.
MyValue \u003d 459.35 * MyValue "(! LANG: 495.35 * 4 qaytaradi

operator / (bo'linma)

Ikki raqamni bo'lish va suzuvchi nuqta natijasini olish uchun ishlatiladi.

Sintaksis:

natija = raqam1 / №2

Tanlovlar:

natija - talab qilinadi; har qanday raqamli o'zgaruvchi
raqam1 - talab qilinadi; har qanday raqamli ifoda
№2 - talab qilinadi; har qanday raqamli ifoda

Izohlar:

Natijaodatda Double tipidagi. To'g'ri, istisnolar mavjud:

  • Agar har ikkala ifoda ifodasi Byte, Integer, Single turida bo'lsa, unda natija Single bo'ladi. Ammo, agar ifodaning o'lchamlari Yagona ramkaga to'g'ri kelmasa, xato bo'ladi.
  • Agar ifodaning har ikkala ifodasi Bayt, Integer yoki Single ni o'z ichiga olgan Variant turiga kirsa, natijada Single Variant bo'ladi. Ammo, agar ifodaning o'lchamlari Yagona raqamga to'g'ri kelmasa, u holda Ikki Variant.
  • Agar raqamlardan biri o'nli turdagi bo'lsa, unda natija ham o'nlik bo'ladi.

Agar raqam1 yoki №2 - Null, keyin bu oddiy 0 deb talqin etiladi.

Misollar:

Xira MyValue
MyValue \u003d 10/4" !} Qaytariladi 2.5.
MyValue \u003d 10/3 " Qaytariladi 3.333333.

operator \\ (butun sonli bo‘linma)

Ikki raqamni ajratish va butun son natijasini olish uchun ishlatiladi.

Sintaksis:

natija = raqam1 \ №2

Tanlovlar:

natija - talab qilinadi; har qanday raqamli o'zgaruvchi
raqam1 - talab qilinadi; har qanday raqamli ifoda
№2 - talab qilinadi; har qanday raqamli ifoda

Izohlar:

Bunday bo'linishdan oldin iboralar Bayt, Integer yoki Long ifodalariga yaxlitlanadi. Odatda natija ma'lumotlarining turi Bayt, Bayt varianti, Integer, Integer varianti, Long yoki Long variantidir. Har qanday kasr qismi qisqartiriladi.

Ammo, agar biron bir ibora Null bo'lsa, unda null bo'ladi. Bo'shni o'z ichiga olgan har qanday ifoda 0 deb talqin etiladi.

Misollar:

Xira MyValue
MyValue \u003d 11 \\ 4 " Qaytariladi 2.
MyValue \u003d 9 \\ 3 " Qaytariladi 3.
MyValue \u003d 100 \\ 3 " Qaytariladi 33.

operatori Mod (bo'linishning qolgan qismi)

Ikki raqamni bo'lish va ularning bo'linishining qolgan qismini olish uchun ishlatiladi.

Sintaksis:

natija = raqam1 Tartibni №2

Tanlovlar:

natija - talab qilinadi; har qanday raqamli o'zgaruvchi
raqam1 - talab qilinadi; har qanday raqamli ifoda
№2 - talab qilinadi; har qanday raqamli ifoda

Izohlar:

Bo'linishda nuqta to'g'ri bo'lgan raqamlar yaxlitlanadi. Masalan, quyidagi ifodaning natijasi 5 ga teng:

A \u003d 19 Tartib 6.7

Bu erda nima bo'layapti? Birinchidan, 6.7 raqami 7 ga yaxlitlanadi. Keyin bo'linish sodir bo'ladi, biz 2.7 ga erishamiz .... Bo'linishning qolgan qismi \u003d 5. (2 * 7 \u003d 14, 19 - 14 \u003d 5).

Natijada odatda Byte, Byte variant, Integer, Integer variant, Long yoki Long o'z ichiga olgan Variant turiga kiradi.

Agar biron bir ibora Null bo'lsa, natijada Null bo'ladi. Bo'shni o'z ichiga olgan har qanday ifoda 0 deb talqin qilinadi.

Misollar:

Xira MyResult
MyResult \u003d 10 ta tartib 5 " Qaytariladi 0.
MyResult \u003d 10 mod 3 " Qaytariladi 1.
MyResult \u003d 12 Tartibni 4.3 " Qaytariladi 0.
MyResult \u003d 12.6 mod 5 " Qaytariladi 3.

operator + (qo'shimcha)

Ikki raqamni qo'shish uchun ishlatiladi.

Sintaksis:

natija = ifoda1+ ifoda2

Tanlovlar:

natija - talab qilinadi; har qanday raqamli o'zgaruvchi
ifoda1
ifoda2 - talab qilinadi; har qanday ifoda

Izohlar:

+ Operatoridan foydalanganda nima bo'lishini, qo'shish yoki qatorni birlashtirishni aniqlay olmaysiz. Chalkashmaslik va kodingizni yanada o'qiy olish uchun birlashtirish uchun & operatoridan foydalaning.

Agar iboralardan biri Variant bo'lmasa, unda quyidagi qoidalar qo'llaniladi:

  • Agar har ikkala ifoda ham sonli tipda bo'lsa (Bayt, Boolean, Integer, Long, Single, Double, Date, Currency, and Decimal), ular qo'shiladi.
  • Agar ikkala ibora ham mag'lubiyat bo'lsa - birikma.
  • Agar iboralardan biri raqamli turga, ikkinchisi esa har qanday Variant qiymatiga, shu jumladan Null bo'lsa, unda qo'shimcha paydo bo'ladi.
  • Agar iboralardan biri mag'lubiyatga, ikkinchisi esa har qanday Variant qiymatiga ega bo'lsa, unda birikma paydo bo'ladi.
  • Agar iboralardan biri bo'sh bo'lsa, unda ikkinchi, o'zgarmas ifoda qaytariladi.
  • Agar iboralardan biri raqamli, ikkinchisi esa satr bo'lsa, Type matchatch xatosi paydo bo'ladi.
  • Agar biron bir ifoda Null bo'lsa, unda natija ham Null bo'ladi.

Agar ikkala ibora ham Variant bo'lsa, unda quyidagi qoidalar qo'llaniladi:

  • Agar ikkala ibora ham raqamlar bo'lsa, unda ular qo'shiladi.
  • Agar ikkala ibora ham satr bo'lsa, unda ular birlashtiriladi.
  • Agar iboralardan biri raqam bo'lsa, ikkinchisi satr bo'lsa, qo'shimcha paydo bo'ladi.

Oddiy qo'shimcha uchun, natijada ma'lumotlar turi odatda ikkita raqamning eng aniq turi bilan bir xil bo'ladi. Aniqlik tartibi Bayt, Butun son, Uzoq, Yagona, Ikki, Valyuta va o'nlik. Istisnolar mavjud:

  • Agar Yagona va Uzun qo'shilsa, natijada Ikki barobar bo'ladi
  • Agar Sana turidagi ifoda, boshqa har qanday ifoda bilan qo'shilsa, natijada Sana bo'ladi.

Agar bir yoki ikkala ibora Null bo'lsa, unda natija ham Null bo'ladi. Agar ikkala iborada bo'sh bo'lsa, natijada Integer bo'ladi. Agar bittasi bo'lsa, natijada o'zgarmagan ikkinchi ifoda qaytariladi.

Misollar:

Xira MyNumber, Var1, Var2
MyNumber \u003d 2 + 2 " Qaytariladi 4.
MyNumber \u003d 4257.04 + 98112 " Qaytariladi 102369.04.

Var1 \u003d "34"
Var2 \u003d 6 "Aralash o'zgaruvchilarni initsializatsiya qilish
MyNumber \u003d Var1 + Var2 " Qaytariladi 40.

Var1 \u003d "34"
Var2 \u003d "6" "O'zgaruvchilarni satrlar bilan boshlash
MyNumber \u003d Var1 + Var2 " Qaytariladi "346" (sodir bo'ldi
"birlashma, qo'shimcha emas!).

Maslahat:

Qo'shish operatori (+) sana qo'shish uchun ishlatilishi mumkin, ya'ni. sana turidagi o'zgaruvchilar:

Dim d Sana sifatida
d \u003d DateSerial (2002, 8, 15) "sana ishga tushirilishi 15.08.2002
d \u003d d + 15 "endi d 30.08.2002 yilni o'z ichiga oladi
"ya'ni biz 15 kun qo'shdik

operator - (ayirish, belgini o'zgartirish)

Ikkala raqam o'rtasidagi farqni topish uchun yoki ifoda belgisini o'zgartirish uchun ishlatiladi.

Sintaksis:

natija = ifoda1- ifoda2

- tushuntirish

Tanlovlar:

natija - talab qilinadi; har qanday raqamli o'zgaruvchi
ifoda - talab qilinadi; har qanday ifoda
ifoda1 - talab qilinadi; har qanday ifoda
ifoda2 - talab qilinadi; har qanday ifoda

Izohlar:

Birinchi sintaksisda ikkita raqam orasidagi farqni topish uchun "-" operatori kerak. Ikkinchi sintaksisda "-" belgisi belgisini o'zgartirish uchun ishlatiladi iboralar.

Natijaning ma'lumotlar turi odatda ikkita raqamning eng aniq turi bilan bir xil bo'ladi. Aniqlik tartibi Bayt, Butun son, Uzoq, Yagona, Ikki, Valyuta va o'nlik. Istisnolar mavjud:

  • Agar ayirboshlashda Single va Long turlari qatnashsa, natijada Double bo'ladi
  • Agar ayirboshlashda Sana ifodasi ishlatilsa,
    natijada Sana bo'ladi.
  • Ikki sanani olib tashlasak, Double hosil bo'ladi.

Agar bir yoki ikkala ibora Null bo'lsa, unda natija ham Null bo'ladi. Agar iboralardan biri Bo'sh bo'lsa, u holda 0 deb talqin qilinadi.

Qo'shish va ayirishning aniqligi tartibi ko'paytishda ishlatilganidan farq qiladi.

Misollar:

Xira MyResult
MyResult \u003d 4 - 2 " Qaytariladi 2.
MyResult \u003d 459.35 - 334.90 " Qaytariladi 124.45.

Maslahat:

Qo'shish operatori singari, ayirish operatori yordamida ikki sana o'rtasidagi farqni (kunlarda) hisoblash uchun foydalanish mumkin:

Dim d1 Sana sifatida
Dim d2 sana sifatida
Dim razn As Long
d1 \u003d DateSerial (1983, 10, 14)
d2 \u003d DateSerial (2002, 8, 15)
razn \u003d d2 - d1 "kunlardagi farq (6880).

Taqqoslash operatorlari

Ba'zi iboralarni taqqoslash uchun ishlatiladi. Ular uchta sintaksisga ega:

Sintaksis:

natija = ifoda1 taqqoslash operatori ifoda2
natija = ob'ekt1 Shunday ob'ekt2
natija = chiziq Yoqdi namuna

Tanlovlar:

natija zarur; har qanday raqamli o'zgaruvchi
ifoda zarur; har qanday ifoda
taqqoslash operatori zarur; har qanday taqqoslash operatori
ob'ekt zarur; har qanday ob'ektning nomi
chiziq zarur; har qanday mag'lubiyat ifodasi.
namuna zarur; har qanday satr ifodasi yoki harflar va raqamlar qatori

Izohlar:

Quyidagi jadvalda taqqoslash operatorlari ro'yxati va ifoda natijasini aniqlaydigan shartlar (To'g'ri yoki Yolg'on) keltirilgan.

Operator

Agar shunday bo'lsa, to'g'ri

Agar noto'g'ri bo'lsa

Agar yo'q bo'lsa

< (меньше чем) ifoda1 <
ifoda2
ifoda1 >=
ifoda2

bir narsa
ning
ifodalarda Null mavjud

<= (меньше или равно) ifoda1 <=
ifoda2
ifoda1 >
ifoda2
\u003e (katta) ifoda1 >
ifoda2
ifoda1 <=
ifoda2
\u003e \u003d (katta yoki teng) ifoda1 >=
ifoda2
ifoda1 <
ifoda2
\u003d (teng) ifoda1 =
ifoda2
ifoda1 <>
ifoda2
<> (teng emas) ifoda1 <>
ifoda2
ifoda1 =
ifoda2

Is va Like operatorlari aniq funktsiyalarni bajaradilar va ularning taqqoslash jadvali quyida ko'rsatilganidan farq qiladi (biz ularni quyida ko'rib chiqamiz).

Ikki ifodani taqqoslaganda taqqoslash raqamlar yoki satrlar bo'lishini aniqlash har doim ham mumkin emas. Ikkala ibora ham Variantdan boshqa turdagi bo'lsa, natija qanday baholanadi:

  • Agar ikkala ifoda ham raqamlar (Bayt, Boolean, Integer, Long, Single, Double, Date, Currency, or Decimal) bo'lsa, u holda raqamlar taqqoslanadi.
  • Agar ikkala ibora ham satr bo'lsa, unda satrlar taqqoslanadi. (kichikroq chiziq - bu birinchi va keyingi harflari kichikroq ascii kodiga ega bo'lgan chiziq).
  • Agar iboralardan biri raqam bo'lsa, ikkinchisi Variant bo'lsa, uni raqam sifatida talqin qilish mumkin bo'lsa, unda raqamlar taqqoslanadi.
  • Agar iboralardan biri raqam bo'lsa, ikkinchisi raqam sifatida talqin qilinmaydigan Variant qatori bo'lsa, unda xato yuzaga keladi (Type mismatch).
  • Agar iboralardan biri mag'lubiyatga, ikkinchisi esa har qanday Variant qiymatiga (hattoki Null) teng bo'lsa, unda satrlarni taqqoslash sodir bo'ladi.
  • Agar ifodalardan biri bo'sh bo'lsa, ikkinchisi raqam bo'lsa, unda raqamlarni taqqoslash amalga oshiriladi, bu erda bo'sh 0 ga teng.
  • Agar iboralardan biri bo'sh bo'lsa, ikkinchisi satr bo'lsa, unda satrlarni taqqoslash amalga oshiriladi, bu erda bo'sh bo'sh satr "" sifatida ko'rib chiqiladi.

Agar ikkala birinchi va ikkinchi variant Variant turiga kirsa, u holda Variant tarkibidagi ma'lumotlar turlari bo'yicha ifodalar taqqoslanadi:

  • Agar ikkala Variant ifodasida ham raqamlar bo'lsa, unda raqamlar taqqoslanadi.
  • Agar ikkala Variant ifodasida ham qatorlar bo'lsa, unda satrlar taqqoslanadi.
  • Agar Variant ifodalarining birida raqam, ikkinchisida qator bo'lsa, unda sonli ifoda satr ifodasidan kam bo'ladi.
  • Agar Variant ifodalaridan biri bo'sh bo'lsa, ikkinchisi raqam bo'lsa, u holda bo'sh 0 ga teng bo'ladi.
  • Agar Variant ifodalaridan biri bo'sh bo'lsa, ikkinchisi satr bo'lsa, u holda bo'sh bo'sh satr "" sifatida qabul qilinadi.
  • Agar ikkala ibora ham Bo'sh bo'lsa, unda ular teng deb hisoblanadi.

Yagona o'zgaruvchini dubl bilan taqqoslaganda, dublyor yakkalikning aniqligiga yaxlitlanadi.

Agar Valyutani bitta yoki ikki marta solishtirilsa, unda bitta yoki ikki kishilik valyutaga aylantiriladi. Xuddi shu tarzda, o'nlikni bitta yoki ikkilamchi bilan taqqoslaganda, bitta yoki juftlik o'nlikka aylantiriladi. Valyuta uchun .0001 dan kam bo'lgan har qanday kasr qismi yo'qolishi mumkin. Decimal uchun qiymat 1E-28 ga teng yoki xato bo'lishi mumkin. Shunday qilib, kasr qismini yo'qotish bilan ifodalarni teng deb talqin qilish mumkin, garchi aslida biri boshqasidan farq qiladi. (ozgina bo'lsa ham).

Misollar:

Xira MyResult, Var1, Var2
MyResult \u003d (45< 35) " Qaytariladi Yolg'on.
MyResult \u003d (45 \u003d 45) " Qaytariladi To'g'ri.
MyResult \u003d (4<> 3) " Qaytariladi To'g'ri.
MyResult \u003d ("5"\u003e "4") " Qaytariladi To'g'ri.

Var1 \u003d "5": Var2 \u003d 4 "VB-da siz yo'g'on ichakdan foydalanishingiz mumkin,
"operatorlarni ajratish uchun.

MyResult \u003d (Var1\u003e Var2) " Qaytariladi To'g'ri.

Var1 \u003d 5: Var2 \u003d Bo'sh
MyResult \u003d (Var1\u003e Var2) " Qaytariladi To'g'ri.

Var1 \u003d 0: Var2 \u003d Bo'sh
MyResult \u003d (Var1 \u003d Var2) " Qaytariladi To'g'ri.

taqqoslash operatori Is

Ushbu operator ob'ekt o'zgaruvchilarini solishtirish uchun ishlatiladi.

Ushbu operator uchun sintaksis yuqorida ko'rsatilgan.

Izohlar:

Agar object1 va object1 bir xil ob'ektga murojaat qilsa, unda natija To'g'ri, aks holda False bo'ladi. Ikki o'zgaruvchi bir xil ob'ektga bir nechta usulda murojaat qilishi mumkin. Quyidagi misolda A B bilan bir xil ob'ektga ishora qiladi:

A \u003d B ni o'rnating

Quyidagi misol A va B o'zgaruvchilar bir xil ob'ektga - C ga murojaat qilishi uchun shunday qiladi:

A \u003d C ni o'rnating
B \u003d C ni o'rnating

Misollar:

Xira MyObject, YourObject, ThisObject, _
OtherObject, ThatObject, MyCheck

YourObject \u003d MyObject-ni o'rnating "ob'ektlarga havolalar yaratish
ThisObject \u003d MyObject-ni o'rnating
ThatObject \u003d OtherObject-ni o'rnating
MyCheck \u003d YourObject Is thisObject "Haqiqiy bo'ladi.
MyCheck \u003d ThatObject Is thisObject "False qaytadi.
"Biz MyObject deb o'ylaymiz<> Boshqalar ob'ekti
MyCheck \u003d MyObject IsOOject "Noto'g'ri qaytadi.

qator taqqoslash operatori - Like

Satrlarni taqqoslash uchun Like satrini taqqoslash operatori ishlatiladi.

Ushbu operator uchun sintaksis yuqorida allaqachon muhokama qilingan.

Izoh:

Ushbu operator String-ni Pattern-ga qarshi sinash uchun ishlatilishi mumkin. Bu Perl-dagi oddiy iboralarga deyarli o'xshash juda kuchli operator.

Shunday qilib, ushbu operator quyidagi tarzda ishlaydi. Agar ip niqobga to'g'ri keladigan bo'lsa, unda natija To'g'ri bo'ladi. Agar yo'q bo'lsa, yolg'on. Agar ifodalardan biri Null bo'lsa, natija ham Null bo'ladi.

Like operatorining harakati sukut bo'yicha taqqoslash turiga bog'liq. (Variantni taqqoslash bayonoti).

Agar Ikkilik turi o'rnatilgan bo'lsa (ya'ni ikkilik taqqoslash) bo'lsa, unda satrlar ularning Ascii kodlariga ko'ra taqqoslanadi (har xil kodlashlarda u har xil). Ushbu ketma-ketlik odatda ishlatiladi:

A< B < E < Z < a < b < e < z < А < К < Я < а < к < я

Agar tur Matnga o'rnatilgan bo'lsa (matnni taqqoslash). Ushbu taqqoslash bilan ketma-ketlik avvalgisidan farq qiladi, bu erda yuqori va pastki harflar teng:

(A \u003d a)< (А=а) < (B=b) < (E=e) < (К=к) < (Z=z) < (Я=я)

Like operatorining eng muhim vazifasi - satr niqobga tegishli ekanligini tekshirish. Niqobda quyidagi maxsus narsalardan foydalanish mumkin. belgilar:

Har qanday bitta belgi
* Nolinchi yoki undan ko'p belgilar
# Har qanday raqam (0-9).
Charllistda ko'rinadigan har qanday bitta belgi
[! charlist] charlistga kiritilmagan bitta belgi

Mana tezkor eslatma. Maxsus o'z ichiga olgan niqobdagi chiziqning tegishli ekanligini tekshirish uchun. belgilar (masalan, tekshiring, masalan, agar qatorda [,?, #,], * belgilar mavjud bo'lsa), ularni to'rtburchak qavs ichiga kiritishingiz kerak. Siz shunchaki alohida qavs [yoki] qo'yish mumkin emas.

Belgilar ro'yxatini belgilashda siz chiziqcha (-) dan foydalanishingiz mumkin. Masalan, A dan Z gacha ketma-ketlikni belgilash uchun siz niqobdan foydalanasiz. Qavs ichidagi hamma narsada hech qanday ajratuvchi bo'lmasligi kerak (bo'shliqlar, vergullar va boshqalar), aks holda ular ketma-ketlikka qo'shiladi.

Niqobni tekshirish uchun boshqa muhim qoidalar mavjud:

  • Belgilar ro'yxati boshidagi (!) belgisi ushbu ro'yxatga kiritilmagan belgilarni izlash kerakligini ko'rsatadi. Agar siz o'zingizni topishingiz kerak bo'lsa! Signning o'zi, siz qavslarni qo'yishingiz kerak [!].
  • (-) belgilar qatorini belgilash uchun ishlatiladi.
  • Belgilar oralig'i ko'rsatilganida, u ASCII ko'tarilishi kerak. O'sha. to'g'ri niqob, emas.
  • Ketma-ketlik "" bo'sh satr sifatida talqin etiladi.

Misollar:

Xira MyCheck
MyCheck \u003d "aBBBa" Like "a * a" "True return.
MyCheck \u003d "F" Like "" "True qaytib keladi.
MyCheck \u003d "F" Like "[! A-Z]" "Noto'g'ri qaytadi.
MyCheck \u003d "a2a" Like "a # a" "True return.
MyCheck \u003d "aM5b" Like "a # [! C-e]" "True return.
MyCheck \u003d "BAT123khg" Like "B? T *" "True will return.
MyCheck \u003d "CAT123khg" Like "B? T *" "Noto'g'ri qaytadi.

myString \u003d "312T-87GD-8922"

Agar myString bo'lsa "### - ## - ####" kabi ... Keyin ...

Iplarni birlashtirish operatorlari

Aslida, Visual Basic-da satrlarni birlashtirish uchun faqat 2 ta operatordan foydalanishingiz mumkin. Ular & va +. + Operatori yuqorida tavsiflangan. & Operatori haqida gaplashamiz.

mag'lubiyatni birlashtirish operatori - &

Ikki iborani birlashtirish uchun ishlatiladi.

Sintaksis:

natija = ifoda1 & ifoda2

natija zarur; Har qanday String yoki Variant o'zgaruvchisi
ifoda1 zarur; Har qanday ifoda
ifoda2 zarur; Har qanday ifoda

Izohlar:

Agar ifoda satr bo'lmasa, u String Variantiga aylantiriladi. Natijada har ikkala ibora ham String turida ma'lumotlar turi String bo'ladi. Aks holda, natija String Variant bo'ladi. Agar ikkala ibora ham Null bo'lsa, unda natija ham Null bo'ladi. Ammo, agar iboralardan faqat bittasida Null qiymati bo'lsa, u holda bo'sh satr "" sifatida talqin etiladi. Bo'sh bo'shliq "" qatori sifatida ham talqin etiladi.

Misollar:

Xira MyStr
MyStr \u003d "Salom" va "Dunyo"
" Qaytariladi "Salom Dunyo" qatori.
MyStr \u003d "CHECK" & 123 & "CHECK"
"" CHECK 123 CHECK "qatorini qaytaradi.

Mantiqiy operatorlar

Bu operator tomonidan eng qiziqarli guruh. Dasturlash paytida siz ularning qanday ishlashini va qanday ishlatilishini bilishingiz kerak (va nafaqat Visual Basic-da).

Visual Basic-da ulardan 6 tasi mavjud. Keling, har bir operatorni batafsil ko'rib chiqaylik.

Va operator

Ikki ifodada mantiqiy ko'paytirishni amalga oshirish uchun foydalaniladi.

Sintaksis:

natija = ifoda1 Va ifoda2

natija
ifoda1 zarur; Har qanday ifoda
ifoda2 zarur; Har qanday ifoda

Izohlar:

And operatori qanday ishlashini quyidagi jadvalda keltirilgan:

Agar ifoda1 \u003d

va ifoda2 \u003d

Natijada \u003d

To'g'ri To'g'ri To'g'ri
To'g'ri Yolg'on Yolg'on
To'g'ri Bekor Bekor
Yolg'on To'g'ri Yolg'on
Yolg'on Yolg'on Yolg'on
Yolg'on Bekor Yolg'on
Bekor To'g'ri Bekor
Bekor Yolg'on Yolg'on
Bekor Bekor Bekor

Va operatori sonning bitlarini sinash uchun ham ishlatiladi. Bitlar uchun And operatori quyidagicha ishlaydi (chapdan o'ngga qarang)

0 0 0
0 1 0
1 0 0
1 1 1

Misollar:

Xira A, B, C, D, MyCheck
MyCheck \u003d A\u003e B Va B\u003e C " Qaytariladi To'g'ri.
MyCheck \u003d B\u003e A Va B\u003e C " Qaytariladi Yolg'on.
MyCheck \u003d A\u003e B Va B\u003e D " Qaytariladi Bekor
MyCheck \u003d A va B " Qaytariladi 8 (bit bilan taqqoslash).

So'nggi misolni batafsil ko'rib chiqaylik. 10 raqami bit sifatida quyidagicha ifodalanadi (tetrad, ya'ni 4 bit):

Va 8 raqami quyidagicha:

Va operatori natijasida yuqoridagi jadvalga muvofiq quyidagilarga erishamiz.

O'sha. 8. Nega biz buni qildik? Buni biz A sonining to'rtinchi biti o'rnatilganligini tekshirish uchun qildikmi? B ni olganimizda, ushbu bit o'rnatilganligiga ishonch hosil qildik.

Yoki operator

Ikki iborani mantiqiy qo'shimchasini bajarish uchun ishlatiladi.

Sintaksis:

natija = ifoda1 Yoki ifoda2

natija zarur; Har qanday raqamli (shu jumladan, mantiqiy) o'zgaruvchi
ifoda1 zarur; Har qanday ifoda
ifoda2 zarur; Har qanday ifoda

Izohlar:

Quyidagi jadval Or operatorining qanday ishlashini ko'rsatadi:

Agar ifoda1 \u003d

va ifoda2 \u003d

Natijada \u003d

To'g'ri To'g'ri To'g'ri
To'g'ri Yolg'on To'g'ri
To'g'ri Bekor To'g'ri
Yolg'on To'g'ri To'g'ri
Yolg'on Yolg'on Yolg'on
Yolg'on Bekor Bekor
Bekor To'g'ri To'g'ri
Bekor Yolg'on Bekor
Bekor Bekor Bekor

Or operatori sonning ma'lum bitlarini o'rnatish uchun ishlatiladi. Bitlar uchun Or operatori quyidagicha ishlaydi (chapdan o'ngga qarang)

0 0 0
0 1 1
1 0 1
1 1 1

Natija qalin.

Misollar:

Xira A, B, C, D, MyCheck
MyCheck \u003d A\u003e B yoki B\u003e C " Qaytariladi To'g'ri.
MyCheck \u003d B\u003e A yoki B\u003e C " Qaytariladi To'g'ri.
MyCheck \u003d A\u003e B yoki B\u003e D " Qaytariladi To'g'ri.
MyCheck \u003d B\u003e D Yoki B\u003e A " Qaytariladi Bekor
MyCheck \u003d A yoki 5 " Qaytariladi 15:

So'nggi misolni batafsil ko'rib chiqamiz. 10 raqami quyidagi tarzda bit sifatida ifodalanadi (tetrad, ya'ni 4 bit):

Va 5 raqami:

Or operatorining ishlashi natijasida yuqoridagi jadvalga binoan quyidagilarga erishamiz.

O'sha. 15. Ko'rib turganingizdek, Or operatori nafaqat taqqoslash ifodalarida, balki sonning ma'lum bitlarini o'rnatishda ham juda oson va qulaydir.

Xor operatori

Ikki iborani mantiqiy inkor qilish uchun foydalaniladi.

Sintaksis:

natija = ifoda1 Xor ifoda2

natija zarur; Har qanday raqamli (shu jumladan, mantiqiy) o'zgaruvchi
ifoda1 zarur; Har qanday ifoda
ifoda2 zarur; Har qanday ifoda

Izohlar:

Xor operatori qanday ishlashini quyidagi jadvalda keltirilgan:

Xor operatori sonning ma'lum bitlarini teskari aylantirish uchun ishlatiladi. Bitlar uchun Xor operatori quyidagicha ishlaydi (chapdan o'ngga qarang)

0 0 0
0 1 1
1 0 1
1 1 0

Natija qalin. Xor Ordan farq qiladi, faqat ikkala bit bit bo'lganda, Xor 0 hosil qiladi. Xor operatori shu xususiyat uchun qiziq, agar u ikki marta ishlatilsa, u bir xil sonni hosil qiladi. Bu ko'pincha kriptografiyada qo'llaniladi.

Misollar:

Xira A, B, C, D, MyCheck
A \u003d 10: B \u003d 8: C \u003d 6: D \u003d Null
MyCheck \u003d A\u003e B Xor B\u003e C " Qaytariladi Yolg'on.
MyCheck \u003d B\u003e A Xor B\u003e C " Qaytariladi To'g'ri.
MyCheck \u003d B\u003e A Xor C\u003e B " Qaytariladi Yolg'on.
MyCheck \u003d B\u003e D Xor A\u003e B " Qaytariladi Bekor
MyCheck \u003d A Xor B " Qaytariladi 2

Xor operatoridan foydalanishning qiziqarli misoli ikkita raqamli o'zgaruvchilar qiymatlarining almashinuvi:

Dim a As Long, b As Long
a \u003d 4
b \u003d 7
a \u003d a Xor b
b \u003d a Xor b
a \u003d a Xor b

Endi a o'zgaruvchisi b o'zgaruvchining qiymatini o'z ichiga oladi va aksincha.

operator emas

Ikki iborani mantiqiy inversiyasini bajarish uchun ishlatiladi.

Sintaksis:

natija \u003d Yo'q ifoda

natija zarur; Har qanday raqamli (shu jumladan, mantiqiy) o'zgaruvchi
ifoda zarur; Har qanday ifoda

Izohlar:

Not operatori qanday ishlashini quyidagi jadvalda keltirilgan:

Not operatori barcha bitlarni teskari aylantiradi iboralar.Bit operatori uchun Not operatori quyidagicha ishlaydi (chapdan o'ngga qarab):

0 1
1 0

Natija qalin.

Misollar:

Xira A, B, C, D, MyCheck
A \u003d 10: B \u003d 8: C \u003d 6: D \u003d Null
MyCheck \u003d Not (A\u003e B) " Qaytariladi Yolg'on.
MyCheck \u003d Not (B\u003e A) " Qaytariladi To'g'ri.
MyCheck \u003d Yo'q (C\u003e D) " Qaytariladi Bekor
MyCheck \u003d A emas " Qaytariladi -11 (barcha bitlar teskari)

So'nggi misolni batafsil ko'rib chiqamiz. 10 raqami bit sifatida quyidagicha ifodalanadi (bayt, ya'ni 8 bit):

Barcha bitlarni teskari aylantirgandan so'ng biz quyidagilarni olamiz:

Va bu -11.

operator Eqv

Ikki ifodaning mantiqiy ekvivalentligini bajarish uchun foydalaniladi.

Sintaksis:

natija = ifoda1 Ekv ifoda2

natija zarur; Har qanday raqamli (shu jumladan, mantiqiy) o'zgaruvchi
ifoda1 zarur; Har qanday ifoda
ifoda2 zarur; Har qanday ifoda

Izohlar:

Eqv operatori qanday ishlashini quyidagi jadvalda keltirilgan:

Bitlar uchun Eqv operatori quyidagicha ishlaydi (chapdan o'ngga qarang)

0 0 1
0 1 0
1 0 0
1 1 1

Misollar:

Xira A, B, C, D, MyCheck
A \u003d 10: B \u003d 8: C \u003d 6: D \u003d Null
MyCheck \u003d A\u003e B tenglama B\u003e C " Qaytariladi To'g'ri.
MyCheck \u003d B\u003e A tenglama B\u003e C " Qaytariladi Yolg'on.
MyCheck \u003d A\u003e B tenglama B\u003e D " Qaytariladi Bekor
MyCheck \u003d A tenglama B " Qaytariladi -3

Imp operatori

Ikki iborani mantiqiy xulosasini chiqarish uchun ishlatiladi.

Sintaksis:

natija = ifoda1 Imp ifoda2

natija zarur; Har qanday raqamli (shu jumladan, mantiqiy) o'zgaruvchi
ifoda1 zarur; Har qanday ifoda
ifoda2 zarur; Har qanday ifoda

Izohlar:

Imp operatori qanday ishlashini quyidagi jadvalda keltirilgan:

Agar ifoda1 \u003d

va ifoda2 \u003d

Natijada \u003d

To'g'ri To'g'ri To'g'ri
To'g'ri Yolg'on Yolg'on
To'g'ri Bekor Bekor
Yolg'on To'g'ri To'g'ri
Yolg'on Yolg'on To'g'ri
Yolg'on Bekor To'g'ri
Bekor To'g'ri To'g'ri
Bekor Yolg'on Bekor
Bekor Bekor Bekor

Bitlar uchun Imp operatori quyidagicha ishlaydi (chapdan o'ngga qarang)

0 0 1
0 1 1
1 0 0
1 1 1

Misollar:

Xira A, B, C, D, MyCheck
A \u003d 10: B \u003d 8: C \u003d 6: D \u003d Null
MyCheck \u003d A\u003e B Imp B\u003e C " Qaytariladi To'g'ri.
MyCheck \u003d A\u003e B Imp C\u003e B " Qaytariladi Yolg'on.
MyCheck \u003d B\u003e A Imp C\u003e B " Qaytariladi To'g'ri.
MyCheck \u003d B\u003e A Imp C\u003e D " Qaytariladi To'g'ri.
MyCheck \u003d C\u003e D Imp B\u003e A " Qaytariladi Bekor
MyCheck \u003d B Imp A " Qaytadi -1

VBA dasturi - bu bayonotlar ketma-ketligi.

Dasturlashda bir qator konventsiyalarga rioya qilish kerak. Shunday qilib, bitta qatorga bir nechta operator joylashtirilishi mumkin. Bir qatorda operatorlar orasida ikki nuqta qo'yiladi.

Har qanday satrni birinchi belgi oxirida "Bo'shliq" + "Pastki chiziq" (_) belgilarini qo'yish orqali ikkiga bo'lish mumkin, bu holda ikkinchi satr birinchisining davomi hisoblanadi.

Izohlar dasturni o'qish uchun ishlatiladi. VBA-da sharhlarni kiritishning ikkita usuli mavjud: satrning istalgan joyiga qo'yilishi mumkin bo'lgan apostrof (') va apostrof o'rniga ajratilgan Rem so'zi.

1. Dim bayonotio'zgaruvchilar turlarini e'lon qilish uchun mo'ljallangan.

Dim A butun sifatida - o'zgaruvchi A butun son sifatida e'lon qilinadi, ya'ni. unda faqat butun son qiymatlari saqlanadi .

Dim D sana sifatida - sanalarni saqlash uchun D o'zgaruvchisi e'lon qilinadi.

Dim familiyasi, nomi satr sifatida - o'zgaruvchilar e'lon qilinadi. Matnni saqlash uchun mo'ljallangan familiya va ism.

Dim B (12) butun son sifatida - 12 ta butun sondan iborat bir o'lchovli massiv (vektor) e'lon qilinadi va sukut bo'yicha massivning birinchi elementi B (0), oxirgi B (12) bo'ladi.

Dim B (3,3) Yagona - haqiqiy sonlardan iborat 3x3 (matritsa) ikki o'lchovli massiv e'lon qildi.

Agar o'zgaruvchining turi ko'rsatilmagan bo'lsa, u holda Variant turi sukut bo'yicha ishlatiladi. Biroq, o'zgaruvchining ma'lum bir turini ko'rsatish dasturni yanada ishonchli qiladi va uning ishini tezlashtiradi, chunki VBA har safar unga kirishda e'lon qilinmagan o'zgaruvchini tanib olish uchun vaqt sarflashiga hojat yo'q.

Agar M massivining kattaligi oldindan ma'lum bo'lmasa va dastur davomida aniqlansa, u holda massivni tavsiflashda elementlar soni ko'rsatilmaydi va massiv quyidagicha aniqlanadi:

Dim M () butun son sifatida

Massiv elementlari sonini aniqlagandan so'ng, masalan, N, operatorni yozishingiz kerak

2. Topshiriq operatori o'zgaruvchiga qiymat berish uchun mo'ljallangan.

Sintaksis:

O'zgaruvchan (yoki ob'ekt xususiyati) \u003d ifoda.

A \u003d 5 - 5 qiymatini berish uchun A o'zgaruvchisi ;

· B \u003d "Menejer" - o'zgaruvchan b tayinlamoq "menejer" ma'nosini anglatadi;

· Manzil \u003d Varaqlar ("Tashkilot"). Hujayralar (2,2) - manzil o'zgaruvchisiga joriy ish daftaridagi Tashkilot varag'ida joylashgan B2 katakchaning tarkibini tayinlash;

Familiya \u003d UserForm1.TextBox1.Text - o'zgaruvchan Familiya TextBox1 tarkibini UserForm1 maxsus shakliga tayinlashdir.

3. bilan / End bilan bayonot bilandasturchini bir xil ob'ekt nomining ko'p takrorlanishidan xalos qiladi.

Sintaksis:

Ob'ekt bilan

operator1

operator2



operator N

Masalan, bayonotlar ketma-ketligi o'rniga

UserForm1.TextBox1.Text \u003d Sana

UserForm1.TextBox2.Text \u003d ""

UserForm1.ComboBox1.Text \u003d ""

shunday yozilishi mumkin

TextBox1.Text \u003d Sana

. TextBox2.Text \u003d ""

. ComboBox1.Text \u003d ""

REM A varaqdagi 1-varaqdagi ikkinchi satrdan boshlab ‘ishchilar stavkalari. ComboBox1 comboBox1-ni 'CustomForm1 maxsus shaklida to'ldiring

'Dasturning birinchi satri - A ustunidagi 1-varaqda' to'ldirilgan kataklar soni hisoblanadi, natijada N o'zgaruvchiga beriladi.

N \u003d Application.CountA (Sheets ("Sheet1"). Range ("A: A")).

D \u003d "A2: A" & Cint (N)

Sheets ("Sheet1"). Diapazon (D) .Name \u003d "Stavkalar"

TextBox1.Text \u003d Sana

. TextBox2.Text \u003d ""

. ComboBox1.Text \u003d ""

. ComboBox1.Rowsource \u003d "Narxlar"

4. Agar / keyin / boshqa shartli bayonot - ma'lum bir shartni tekshirishga imkon beradi va tekshirish natijalariga qarab u yoki bu harakatni amalga oshiradi

Sintaksis:

Agar holat Keyin operatorlar1 [ Boshqa operatorlar2]

Agar shart to'g'ri bo'lsa, u holda 1-so'zlar bajariladi, aks holda 2-bayonlar bajariladi.

Bundan tashqari, blok sifatida yozilgan murakkab shartli operatordan foydalanishga ruxsat beriladi:

Agar shart1 Keyin

operatorlar1

Agar boshqa bo'lsashart2 Keyin

Parametr nomi Qiymat
Maqolaning mavzusi: VBA bayonotlari
Kategoriya (tematik kategoriya) Dasturlash

VBA - bu operator tili. Bu shuni anglatadiki, uning dasturlari (protseduralari yoki funktsiyalari) bayonotlarning ketma-ketligini aks ettiradi.

VBA tilida quyidagi operatorlar guruhini ajratish mumkin:

1. dastur ishlaydigan ob'ektlarni tavsiflash uchun mo'ljallangan deklarativ operatorlar (o'zgaruvchilar, doimiy va massivlar turlari),

2.operatorlar-sharhlar,

3. ob'ektlarning qiymatlarini o'zgartirish va o'zgartirish operatorlari,

4. hisob-kitoblar jarayonini boshqaruvchi operatorlar (shartli, tsiklik, o'tish).

Ushbu kursda asosiy operatorlar ko'rib chiqiladi va ba'zilari, masalan, tsiklik, uchta turda namoyish etiladi, ammo talabalar ulardan bittasini o'zlashtirishlari kerak, chunki ulardan foydalanish eng tushunarli.

Izohlar operatori

Izohlar dasturning bajarilishiga ta'sir qilmaydi, lekin algoritmni tushunish uchun zarurdir. Dasturlar bir necha bor yangilanib borilayotganligi sababli, algoritmni eslab qolish va uni to'g'ri o'zgartirish uchun izohlardan foydalanish juda muhimdir.

Dastur matnining har qanday satri sharh bilan yakunlanishi mumkin. VBA-da sharh apostrof (") bilan boshlanadi va satrning o'ng tomonidagi har qanday matnni o'z ichiga oladi.

Masalan,

Og'irligi \u003d og'irligi + z "Og'irlikning ortishi qiymati \u003d og'irligi * narxi" Yangi narx

Topshiriq operatori

Topshiriq operatorlari dastur holatini o'zgartirishning asosiy vositasi (o'zgaruvchan qiymatlar). Bu o'zgaruvchini (chap tomon) va ifodani (o'ng tomon) \u003d belgisi bilan bog'laydigan qurilishdir. Ifoda operandlardan (o'zgaruvchan nomlar, konstantalar, standart funktsiya nomlari) va amal belgilaridan (arifmetik, mantiqiy, satr, taqqoslash) iborat. Ushbu operatorning ma'nosi shundaki, chap tomonga o'ng tomonning qiymati beriladi.

Operatorlarni boshqarish

VBA boshqaruv bayonotlari to'plami tuzilgan dasturlash tiliga mos keladi. Ushbu to'plamga quyidagilar kiradi shartli va tsiklli bayonotlar, bu sizga hisoblash jarayonini ishonchli va samarali tashkil etishga imkon beradi.

If If If Else End If If shartli gap

Bu ma'lum bir shartning haqiqati asosida harakatlarni tanlash va amalga oshirishga imkon beradigan dasturlash tillarida keng tarqalgan hisoblashni boshqarish operatori.

VBA operatorlari - tushuncha va turlari. "VBA operatorlari" toifasining tasnifi va xususiyatlari 2017, 2018.

  • - Miqdorni saqlash va saqlash operatorlari

    TRIZ-dagi ushbu Dial toifasi "34-sonli printsip, qismlarni tashlab yuborish va qayta tiklash:" a) ob'ektning maqsadini bajargan yoki keraksiz holga kelgan qismi tashlanishi (eritilishi, bug'lanishi va h.k.) yoki to'g'ridan-to'g'ri ish jarayonida o'zgartirilishi kerak. b) ....


  • - VBA tilining elementlari

    Shakl: 12.1 Formada joylashgan ob'ektlar 6. Formadagi har bir ob'ektni alohida-alohida faollashtiring, xususiyatlar oynasi yordamida uning xususiyatini o'rnating (Xususiyatlar 12.2-rasm). Shunday qilib, interfeys yaratiladi (12.3-rasm). Shakl: 12.3. Loyiha interfeysi (.... bilan


  • - Shartli operatorlar

    Murakkab operator. Tarkibiy operatorlar Protsedurali qo'ng'iroq operatori So'zsiz o'tish operatori Shartsiz o'tish operatori ijro tartibini o'zgartirish imkoniyatini beradi ....


  • - Murakkab shartli gaplar

    Ba'zan, muammolarni echishda, boshqa shartli operatorlar, o'z navbatida, filiallarda joylashgan operatorlar bo'lishi mumkin bo'lgan vaziyat yuzaga keladi. Ular birikma operatorlar deyiladi. Bundan tashqari, investitsiyalar soni yoki ular aytganidek investitsiyalar darajasi .... bo'lishi mumkin.


  • - VBA asoslari

    Visual Basic for Application (VBA) - bu eng sodda dasturlash tillaridan biri va Excel elektron jadval protsessorining barcha hisoblash kuchlarining kombinatsiyasi. VBA yordamida siz tez va osonlik bilan turli xil dasturlarni yaratishingiz mumkin, hatto bu sohada mutaxassis bo'lmasangiz ham ...

  • Taqqoslash operatsiyalari odatda operatsiyalarning keyingi rivojlanishi to'g'risida qandaydir qaror qabul qilish uchun ko'chadan bayonotlarda qo'llaniladi.

    Har qanday taqqoslash operatsiyasining natijasi mantiqiy qiymati: True, False.

    Agar taqqoslash ifodasidagi ikkala operand ham bir xil ma'lumot turiga ega bo'lsa, VBA bu tip uchun oddiy taqqoslashni amalga oshiradi.

    Agar taqqoslash ifodasidagi ikkala operand ham o'ziga xos turlarga ega bo'lsa va turlari mos kelmasa, VBA tipdagi mos kelmaslik xatosini chiqaradi.

    Agar taqqoslash ifodasidagi bitta yoki ikkala operand Variant bo'lsa, VBA Variantni qandaydir mos turga o'tkazishga harakat qiladi.

    Iplarni taqqoslash

    Satrlarni relyatsion operatorlar bilan taqqoslashda VBA har bir satrni chapdan o'ngga belgi bo'yicha taqqoslaydi.

    VBA-da bitta satr ikkinchisiga teng bo'ladi, faqat ikkala satrda aynan bir xil belgilar bir xil tartibda joylashgan bo'lsa va ikkala satr bir xil uzunlikda bo'lsa. Masalan, "johns" "johns" "abvgd" satrlari bir-biriga teng emas, chunki VBA satrlarni taqqoslashda etakchi yoki orqadagi bo'sh joyni e'tiborsiz qoldirmaydi.

    O'zgaruvchan uzunlikdagi simlarni taqqoslashda ehtiyot bo'lish kerak.

    Ikkilik va matn satrlarini taqqoslash

    Matnni saqlash uchun kompyuter har bir ko'rsatilgan belgining o'ziga xos raqamiga ega bo'lgan sxemadan foydalanadi. Barcha alifbo harflari o'zlarining noyob raqamlariga ega. Odatda, katta harflar kichik harflardan pastroq raqamlanadi. Muayyan harf yoki belgiga mos keladigan raqam deyiladi belgilar kodi.

    Satr ma'lumotlari bo'yicha ikkilik taqqoslashlarni amalga oshirishda VBA har bir belgi uchun raqamning ikkilik ekvivalentidan foydalanadi. Ushbu taqqoslash usuli deyiladi ikkilik yoki ikkilik va standart taqqoslash usuli hisoblanadi.

    Chunki katta harflar kichik ikkilik raqamlarga ega, katta harflar kichik harflardan oldin alifbo tartibida paydo bo'ladi. Shuning uchun ikkilik qatorlarni taqqoslashda "ABC" qatori "abc" qatoridan kichikroq bo'ladi.


    Satrlarni matn bilan taqqoslashda VBA belgilarning ikkilik ekvivalentidan foydalanmaydi va katta va kichik harflarni "ajratmaydi". Matnni taqqoslashda "abc" qatori "ABC" qatoriga teng.

    Satrlarni taqqoslash usulini tanlash uchun Option Compare direktivasidan foydalaning


    Variantni taqqoslash


    Ushbu ko'rsatma modulni e'lon qilish sohasida bo'lishi kerak.

    Iplarni birlashtirish

    Bir qatorni boshqasiga qo'shilish deyiladi torli birikma.

    Iplarni birlashtirish odatda namoyish qilish uchun xabar yaratish uchun protsedurada turli xil manbalardan strings hosil qilish uchun ishlatiladi. VBA-da simlarni birlashtirish uchun ikkita operator mavjud.

    Birlashtirish operatori (&)

    VBA-dagi operator (&) faqat satrlarni birlashtirish uchun ishlatiladi.

    Sintaksis


    Operand_1 va Operand_2 [& Operand_3 ..]


    Operand_N - bu har qanday yaroqli satr yoki raqamli ifoda (bu satrga aylantiriladi).

    Iplarni birlashtirish natijalarining ma'lumotlar turi String.

    Agar mag'lubiyatni birlashtirish ifodasidagi operand Empty yoki Null bo'lsa, VBA bu operandni nol uzunlikdagi satr sifatida sharhlaydi (belgi satri yo'q).

    Eslatma! Birlashtirish amalining belgisi (&) o'zgaruvchi nomidan bo'sh joy bilan ajratilishi kerak, chunki aks holda, VBA bu belgini Long type xulosa belgisi sifatida talqin qilishi mumkin.

    Satrlarni biriktirishda qo'shish operatori

    Satrlarni birlashtirish uchun (+) operatoridan ham foydalanishingiz mumkin.

    Ushbu operator (&) operatori singari sintaksis va talablarga ega. Ammo, shuni tushunish kerakki, VBA-da (+) operatorining asosiy maqsadi arifmetik qo'shimchalar. Shuning uchun dastur kodini o'qishda noaniqlikka yo'l qo'ymaslik uchun (&) operatoridan mag'lubiyatni birlashtirish uchun foydalanish tavsiya etiladi.

    Amaliyotning ustuvor yo'nalishlari

    Dastur kodidagi ko'plab iboralar murakkab (murakkab), ya'ni. ikki yoki undan ortiq iboralardan iborat.

    Murakkab iboralarni baholashda VBA quyidagi qoidalarga amal qiladi:

    • Qavslar ichiga olingan ifoda qismlari har doim birinchi bo'lib baholanadi;
    • Maxsus operatsiyalar operatorlar ierarxiyasiga qarab amalga oshiriladi (quyidagi jadval);
    • Agar operator iyerarxiyasi teng bo'lsa, ular chapdan o'ngga baholanadi.
    Operator
    Maqola sizga yoqdimi? Do'stlar bilan bo'lishish uchun: