Okuguquguqukayo nama-constants ku-VBA

Ku-VBA, njengakunoma yiluphi olunye ulimi lokuhlela, okuguquguqukayo kanye nokuvumelanayo kusetshenziswa ukugcina noma yimaphi amanani. Njengoba igama lisho, okuguquguqukayo kungashintsha, kuyilapho ama-constants egcina amanani angashintshi.

Ngokwesibonelo, a njalo Pi igcina inani 3,14159265… Inombolo “Pi” ngeke ishintshe ngesikhathi kusetshenziswa uhlelo, kodwa kusafaneleka kakhulu ukugcina inani elinjalo njengokungaguquki.

Ngesikhathi esifanayo, singasebenzisa okuguquguqukayo sVAT_Rate ukugcina izinga le-VAT ezimpahleni ezithengiwe. Inani eliguquguqukayo sVAT_Rate zingahluka kuye ngomkhiqizo othengiwe.

Izinhlobo Zedatha

Zonke izinto eziguquguqukayo nezingaguquki ziwuhlobo oluthile lwedatha. Ithebula elingezansi libonisa izinhlobo zedatha ezisetshenziswa ku-VBA nencazelo kanye nobubanzi bamanani angenzeka:

Uhlobo lwedatha UsayiziIncazeloUbubanzi bamanani
ByteAmabhayithi we-1Izinombolo eziphelele; evame ukusetshenziselwa idatha kanambambilikusuka ku-0 kuya ku-255
BooleanAmabhayithi we-2Kungaba iqiniso noma amangaYiqiniso noma Amanga
IntegerAmabhayithi we-2Izinombolo eziphelele (ayikho ingxenye eyingxenye)kusuka -32 kuye +768
LongAmabhayithi we-4Ama-integer amakhulu (ayikho ingxenye eyingxenye)от -2 147 483 648 до +2 147 483 647
singleAmabhayithi we-4Inombolo yephoyinti entantayo enembayo eyodwakusuka ku--3.4e38 kuya ku-+3.4e38
DoubleAmabhayithi we-8Inombolo yephoyinti elintantayo enembayo kabilikusuka ku--1.8e308 kuya ku-+1.8e308
CurrencyAmabhayithi we-8Inombolo yephoyinti elintantayo, enenombolo egxilile yezindawo zamadesimaliот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
UsukuAmabhayithi we-8Usuku nesikhathi – Idatha yohlobo Usuku imelelwa inombolo yephoyinti elintantayo. Ingxenye ephelele yale nombolo iveza idethi, futhi ingxenye eyingxenye iveza isikhathi.kusukela ngoJanuwari 1, 100 kuya kuDisemba 31, 9999
IntoAmabhayithi we-4Ireferensi yentoNoma iyiphi inkomba yento
UmzilauyashintshaIsethi yohlamvu. Uhlobo lwe-String lungaba ubude obunqunyiwe noma obuguquguqukayo. Okuvame ukusetshenziswa kakhulu ngobude obuguquguqukayoUbude obulungisiwe - kufika cishe ezinhlamvu ezingu-65. Ubude obuguquguqukayo - kufika cishe ezinhlamvu eziyizigidi eziyizinkulungwane ezingu-500
OkuhlukileuyashintshaIngaqukatha idethi, iflothi, noma umucu wezinhlamvu. Lolu hlobo lusetshenziswa ezimeni lapho kungaziwa kusengaphambili ukuthi yiluphi uhlobo lwedatha oluzofakwa.Inombolo - Okuphindwe kabili, intambo - Intambo

Ngokusobala, usebenzisa ithebula elingenhla nokukhetha uhlobo lwedatha olulungile, ungasebenzisa inkumbulo ngokonga kakhulu (isibonelo, khetha uhlobo lwedatha Integer esikhundleni Long or single esikhundleni Double). Kodwa-ke, uma usebenzisa izinhlobo eziningi zedatha ehlangene, udinga ukuqaphela ukuthi ikhodi yakho ayizami ukufaka amanani amakhulu ngokungenakulinganiswa kuzo.

Ukumemezela Okuguquguqukayo kanye Nezikhathi Ezivamile

Inothi Lomhumushi: Ukukhuluma ngokuguquguqukayo ku-VBA, kufanelekile ukusho iphuzu elilodwa elibaluleke kakhulu. Uma simemezela okuguquguqukayo kodwa singaniki noma yiliphi inani kukho, khona-ke kuqaliswa ngenani elizenzakalelayo:

• amayunithi ezinhlamvu ombhalo aqaliswa ngeyunithi yezinhlamvu ezingenalutho;

• izinombolo — inani 0;

• thayipha okuguquguqukayo Boolean - Amanga;

• izinsuku - Disemba 30, 1899.

Ngaphambi kokuthi kusetshenziswe okuguquguqukayo noma okungaguquki, kufanele kumenyezelwe. Ukuze wenze lokhu, engeza umugqa wekhodi olandelayo ku-macro:

Dim Имя_Переменной As Тип_Данных

Emgqeni ongenhla wekhodi Igama_liguqukayo igama lokuguquguquka elizosetshenziswa kukhodi, futhi Uhlobo_lwedatha ingenye yezinhlobo zedatha kusuka kuthebula elinikezwe ngaphambili kancane kulesi sihloko. Ngokwesibonelo:

Nciphisa i-sVAT_Rate Njenge-Single Dim njenge-Integer

Ama-Constant amenyezelwa ngokufanayo, kodwa lapho kumenyezelwa ama-constants, inani lawo kufanele likhonjiswe ngokushesha. Ngokwesibonelo, kanje:

I-Const iMaxCount = 5000 Const iMaxScore = 100

Akudingekile ukumemezela okuguquguqukayo ku-Excel. Ngokuzenzakalelayo, zonke izinhlobo ezifakiwe kodwa ezingashiwongo ku-Excel zizoba nohlobo Okuhlukile futhi izokwazi ukwamukela kokubili inani lezinombolo nelombhalo.

Ngakho-ke, umklami angasebenzisa okuguquguqukayo okusha nganoma isiphi isikhathi (ngisho noma kungazange kumenyezelwe), futhi i-Excel izoyithatha njengokuguquguquka kohlobo. Okuhlukile. Nokho, kunezizathu eziningana zokuthi kungani lokhu kungafanele kwenziwe:

  1. Ukusetshenziswa kwememori nesivinini sokubala. Uma ungasho okuguquguqukayo okunenkomba yohlobo lwedatha, ngokuzenzakalelayo kuzosethwa ohlotsheni Okuhlukile. Lolu hlobo lwedatha lusebenzisa inkumbulo eningi kunezinye izinhlobo zedatha. Amabhayithi engeziwe ambalwa okuguquguqukayo ngakunye kungase kungezwakali njengokukuningi, kodwa ekusebenzeni, izinhlelo zingaba nezinkulungwane zezinto eziguquguqukayo (ikakhulukazi uma zisebenza ngamaqoqo). Ngakho-ke, inkumbulo eyengeziwe esetshenziswa eziguquguqukayo ezifana Okuhlukile, uma kuqhathaniswa neziguquguqukayo zohlobo Integer or single, ingangeza inani elibalulekile. Ngaphezu kwalokho, imisebenzi enezinhlobonhlobo zohlobo Okuhlukile zenziwa kancane kakhulu kuneziguquguqukayo zezinye izinhlobo, ngokulandelana, izinkulungwane ezengeziwe eziguquguqukayo zohlobo Okuhlukile inganciphisa kakhulu izibalo.
  2. Ukuvinjelwa kwama-typos emagameni aguquguqukayo. Uma zonke eziguquguqukayo zimenyezelwa, isitatimende se-VBA singasetshenziswa − Inketho Icacile (sizokhuluma ngakho kamuva) ukuze sihlonze zonke izinguquko ezingakamenyezelwa. Lokhu kususa ukubonakala kwephutha ohlelweni ngenxa yegama elihlukile elibhalwe ngokungalungile. Isibonelo, usebenzisa i-variable ebizwa ngokuthi sVAT_Rate, ungenza iphutha futhi, unikeze inani kulokhu okuguquguqukayo, bhala: "VATRate = 0,175". Kulindeleke ukuthi kusukela manje kuqhubeke, okuguquguqukayo sVAT_Rate kufanele ibe nenani elingu-0,175 - kodwa akunjalo. Uma imodi yesimemezelo esiyisibopho sakho konke okuguquguqukayo okusetshenzisiwe inikwe amandla, khona-ke umhlanganisi we-VBA uzokhombisa iphutha ngokushesha, ngoba ngeke akuthole okuguquguqukayo. I-VATRate phakathi kwalezo ezimenyezelwe.
  3. Igqamisa amanani angafani nohlobo olumenyezelwe lokuguquguquka. Uma umemezela okuguquguqukayo kohlobo oluthile bese uzama ukunikeza idatha yohlobo oluhlukile kukho, uzothola iphutha, okuthi, uma liyekwa lingalungiswanga, lingabangela ukuthi uhlelo luphahlazeke. Ekuboneni kokuqala, lokhu kungase kubonakale njengesizathu esihle sokungamemezeli okuguquguqukayo, kodwa empeleni, kunangaphambi kokuba kuvele ukuthi enye yezinto eziguquguqukayo ithole idatha engalungile okwakufanele ithole - okungcono kakhulu! Uma kungenjalo, uma uhlelo luqhubeka nokusebenza, imiphumela ingase ingalungile futhi ingalindelekile, futhi kuyoba nzima kakhulu ukuthola imbangela yamaphutha. Kungenzeka futhi ukuthi i-macro izokwenziwa “ngempumelelo”. Ngenxa yalokho, iphutha ngeke libonwe futhi umsebenzi uzoqhubeka nedatha engalungile!

Mayelana nalokhu, kuyinto efiselekayo ukuthola uhlobo lwedatha olungalungile futhi ulungise amaphutha anjalo kukhodi ngokushesha ngangokunokwenzeka. Ngalezi zizathu, kuyanconywa ukuthi umemezele zonke izinto eziguquguqukayo lapho ubhala i-VBA macro.

Inketho Icacile

I-Operator Inketho Icacile ibangela ukuthi zonke izinto eziguquguqukayo ezizosetshenziswa kukhodi ye-VBA zimenyezelwe, futhi ihlaba umkhosi zonke eziguquguqukayo ezingadalulwanga njengamaphutha ngesikhathi sokuhlanganiswa (ngaphambi kokuthi kuqale ukusebenzisa ikhodi). Ukusebenzisa lo opharetha akunzima - vele ubhale lo mugqa phezulu kwefayela le-VBA:

Option Explicit

Uma ufuna ukufaka njalo Inketho Icacile phezulu kwemojuli entsha ye-VBA eyakhiwe, lokhu kungenziwa ngokuzenzakalelayo. Ukuze wenze lokhu, udinga ukunika amandla inketho Idinga Isimemezelo Esiguquguqukayo kuzilungiselelo zomhleli we-VBA.

Lokhu kwenziwa kanjena:

  • Kusuka kumenyu ye-Visual Basic Editor, chofoza Amathuluzi > Izinketho
  • Engxoxweni evelayo, vula ithebhu Umhleli
  • Bheka ibhokisi Idinga Isimemezelo Esiguquguqukayo bese ucindezela OK

Uma inikwe amandla, iyunithi yezinhlamvu Inketho Icacile izofakwa ngokuzenzakalelayo ekuqaleni kwemojuli entsha ngayinye edaliwe.

Ububanzi bezinto eziguquguqukayo nezihlala njalo

Uguquko ngalunye olumenyezelwe noma olungaguquki lunobubanzi balo obulinganiselwe, okungukuthi, ingxenye elinganiselwe yohlelo lapho lokhu kuhlukahluka okukhona khona. Ububanzi buncike lapho isimemezelo sokuguquguquka noma okungaguquki senziwa. Thatha, isibonelo, okuguquguqukayo sVAT_Rate, esetshenziswa emsebenzini Inani_Izindleko. Ithebula elilandelayo lixoxa ngezinketho ezimbili zesikophu esishintshashintshayo sVAT_Rateamenyezelwe ezindaweni ezimbili ezihlukene kumojula:

Inketho Yokufiphalisa Ngokusobala sVAT_Rate Njengomsebenzi Owodwa Total_Cost() Njengokabili ... Qeda Umsebenzi
Uma okuguquguqukayo sVAT_Rate emenyezelwe ekuqaleni kwemojula, khona-ke ububanzi balokhu okuguquguqukayo kuzoba yimojula yonke (okungukuthi, okuguquguqukayo sVAT_Rate izobonwa yizo zonke izinqubo kule mojuli).

Ngakho-ke, uma kuhlelo lokusebenza Inani_Izindleko okuguquguqukayo sVAT_Rate izokwabelwa inani elithile, bese umsebenzi olandelayo owenziwe ngaphakathi kwemojuli efanayo uzosebenzisa okuguquguqukayo sVAT_Rate ngencazelo efanayo.

Kodwa-ke, uma umsebenzi othile otholakala kwenye imojula ubizwa, khona-ke ukuguquguquka kwawo sVAT_Rate ngeke kwaziwe.

Inketho Umsebenzi Obekelwe Obala Total_Cost() Njenge-Double Dim sVAT_Rate Njengowodwa ... Qeda Umsebenzi
Uma okuguquguqukayo sVAT_Rate amenyezelwe ekuqaleni komsebenzi Inani_Izindleko, khona-ke ububanzi bayo buzokhawulelwa kulo msebenzi kuphela (okungukuthi ngaphakathi komsebenzi Inani_Izindleko, ungasebenzisa okuguquguqukayo sVAT_Rate, kodwa hhayi ngaphandle).

Lapho uzama ukusebenzisa sVAT_Rate kwenye inqubo, umdidiyeli we-VBA uzobika iphutha ngoba lokhu okuhlukile akuzange kumenyezelwe ngaphandle komsebenzi Inani_Izindleko (uma ngabe umsebenzisi uyasetshenziswa Inketho Icacile).

Esibonelweni esiboniswe ngenhla, okuguquguqukayo kumenyezelwa ezingeni lemojuli ngegama elingukhiye Dim. Nokho, kungase kudingeke ukuthi okuguquguqukayo okumenyezelwe kusetshenziswe kwamanye amamojula. Ezimweni ezinjalo, ukumemezela okuguquguqukayo esikhundleni segama elingukhiye Dim igama elingukhiye kufanele lisetshenziswe Public.

Ngendlela, ukuze umemezele okuguquguqukayo ezingeni lemojuli, esikhundleni segama elingukhiye Dim igama elingukhiye lingasetshenziswa Private, okubonisa ukuthi lokhu okuguquguqukayo kuhloselwe ukusetshenziswa kuphela kumojula yamanje.

Ungasebenzisa futhi amagama angukhiye ukuze umemezele ama-constants. Public и Private, kodwa hhayi esikhundleni segama elingukhiye UConst, kanye nayo.

Izibonelo ezilandelayo zibonisa ukusetshenziswa kwamagama angukhiye Public и Private isetshenziswa kuma-variables nama-constants.

Inketho Ebekela Obala I-sVAT_Rate Esesidlangalaleni Njenge-Const Eyodwa Yomphakathi iMax_Count = 5000 ...    
Kulesi sibonelo, igama elingukhiye Public esetshenziselwa ukumemezela okuguquguqukayo sVAT_Rate kanye nama-constants iMax_Count. Ububanzi bezinto ezimenyezelwe ngale ndlela kuzoba yonke iphrojekthi yamanje.

Lokhu kusho ukuthi sVAT_Rate и iMax_Count izotholakala kunoma iyiphi imojula yephrojekthi.

Inketho Ecacile Eyimfihlo I-sVAT_Rate Njenge-Single Private Const iMax_Count = 5000 ...    
Kulesi sibonelo, ukumemezela okuguquguqukayo sVAT_Rate kanye nama-constants iMax_Count igama elingukhiye elisetshenzisiwe Private. Ububanzi balezi zakhi yimojuli yamanje.

Lokhu kusho ukuthi sVAT_Rate и iMax_Count izotholakala kuzo zonke izinqubo zemojuli yamanje, kodwa ngeke itholakale kuzinqubo kwamanye amamojula.

shiya impendulo