Fêmkirina Guherbar û Berdewam di Macroyên Excel de

Di vê gotarê de, hûn ê fêr bibin ka çi domdar û guhêrbar di makroyan de ne, li ku derê dikarin werin bikar anîn, û cûdahiya sereke di navbera celebên daneyên cihêreng de çi ye. Di heman demê de dê were diyar kirin ku çima domdar hewce ne, heke hûn tenê guhêrbarek binivîsin û qet neguhezînin.

Mîna zimanên din ên bernamekirinê, dane dikarin di guhêrbar an domdar de bêne hilanîn (ku her du jî bi gelemperî wekî konteynerên daneyê têne binav kirin). Cûdahiya sereke ya di navbera van têgehan de ev e. Dibe ku ya berê li gorî tiştê ku di bernameyê de diqewime biguhezîne. Di encamê de, domdar carekê têne danîn û nirxa xwe naguherînin.

Ger hewce be ku hûn heman nirxa mezin gelek caran bikar bînin, domdar dikarin kêrhatî bin. Li şûna kopîkirina hejmarê, hûn dikarin tenê navê domdar binivîsin. Mînakî, hûn dikarin "Pi" ya domdar bikar bînin da ku Pi hilînin, ku nirxek domdar e. Ew pir mezin e, û her car nivîsandina wê an lêgerîn û kopîkirina wê pir dijwar e. Û bi vî awayî, bes e ku meriv du tîpan binivîsîne, û jîngeh bixweber jimareya xwestî bikar tîne.

Ger hewce bike ku dem bi dem nirxa ku di wan de hatî hilanîn biguhezîne pêdivî ye ku bikarhêner Excel guhêrbaran ragihîne. Mînakî, hûn dikarin guhêrbarek bi navê sVAT_Rate saz bikin, ku dê rêjeya VAT ya heyî ji bo hilberê hilîne. Ger ew biguhere, hûn dikarin zû rast bikin. Ev bi taybetî ji bo kesên ku li Dewletên Yekbûyî karsaziyê dikin bikêr e, ku dibe ku hin tişt qet nebe mijara VAT-ê (û ev bac jî ji dewletek ji dewletek cûda cûda dibe).

Cûreyên Daneyê

Her konteynir daneyê dikare yek ji çend celeban be. Li vir tabloyek celebên standard ên agahdariya pêvajoyî diyar dike. Gelek ji wan hene, û dibe ku di destpêkê de ji destpêkek re xuya bibe ku ew hevûdu dubare dikin. Lê ev hestek xeyalî ye. Bixwînin da ku fêr bibin ka çima destnîşankirina celebê daneya rast ew qas girîng e.

Tê pêşniyar kirin ku ji bo hejmarên piçûk celebek daneya ku di bîranînê de bêtir cîh digire bikar bînin. Mînakî, ji bo hejmara 1-ê, karanîna tîpa Byte bes e. Ev ê bandorek erênî li ser performansa modula darvekirî, nemaze li ser komputerên qels bike. Lê girîng e ku li vir pir dûr neçin. Ger hûn celebek daneyê ku pir tevlihev e bikar bînin, dibe ku nirxek pir mezin tê de nebe.

Daxuyankirina Constant û Guherbaran

Bikaranîna konteynerek daneyê bêyî ku pêşî were ragihandin ew bi tundî nayê cesaret kirin. Dûv re çend pirsgirêk dikarin derkevin holê, ji bo nehiştina wan hewce ye ku çend rêzikên piçûk ên kodê bi hejmartina guhêrbar an sabitan binivîsin.

Ji bo ragihandina guherbarekê, daxuyaniya Dim tê bikaranîn. Mînakî, bi vî rengî:

Dim Variable_Name As Integer

Variable_Name navê guhêrbar e. Piştre, operator As tê nivîsandin, ku celebê daneyê destnîşan dike. Li şûna rêzikên "Variable_Name" û "Integer", hûn dikarin nav û celebê daneya xwe têxin nav xwe.

Berdewam jî dikarin bêne ragihandin, lê divê hûn pêşî nirxa wan diyar bikin. Yek ji vebijarkan ev e:

Const iMaxCount = 5000

Bi dadperwerî, di hin rewşan de hûn dikarin bêyî ragihandina guhêrbarek bikin, lê di vê rewşê de ew ê bixweber celebê Variant bêne destnîşan kirin. Lêbelê, ev ji ber sedemên jêrîn nayê pêşniyar kirin:

  1. Guhertoya pir hêdîtir tê pêvajo kirin, û heke gelek guhêrbarên weha hebin, pêvajoyek agahdarî dikare li ser komputerên qels bi girîngî hêdî bibe. Wusa dixuye ku ew saniye dê biryar bidin? Lê heke hûn neçar in ku hejmareke mezin ji rêzikên kodê binivîsin, û dûv re jî wê li ser komputerên qels bimeşînin (yên ku hîn jî têne firotin, ji ber ku reqemên nivîsgeha nûjen gelek RAM hewce dike), hûn dikarin kar bi tevahî rawestînin. Hin rewş hene ku nivîsandina nebaş a makroyan rê li ber cemidandina pirtûkên jîr ên ku xwedan mîqdarek piçûk a RAM-ê ne û ne ji bo pêkanîna karên tevlihev hatine sêwirandin. 
  2. Di navan de çewtî çapkirin têne destûr kirin, ku dikare bi karanîna daxuyaniya Vebijêrk Explicit were asteng kirin, ku dihêle hûn guhêrbarek nedaxuyandî, ger yek were dîtin, bibînin. Ev rêyek hêsan e ji bo tespîtkirina xeletiyan, ji ber ku xeletiyek piçûktir dibe sedem ku wergêr nikaribe guherbarê nas bike. Û heke hûn moda danezana guhêrbar vekin, ger ku konteynerên daneyê yên ku di destpêka modulê de nehatine ragihandin werin dîtin, wergêr dê bi hêsanî nehêle hûn makroyê bimeşînin.
  3. Ji xeletiyên ku ji hêla nirxên guhêrbar ên ku bi celebê daneyê re hev nagirin, dûr bixin. Bi gelemperî, destnîşankirina nirxek nivîsê ji guhêrbarek yekjimar re dê xeletiyek bavêje. Erê, ji aliyek ve, celebek gelemperî bêyî danezanê tête destnîşan kirin, lê heke ew pêşwext werin ragihandin, wê hingê ji xeletiyên rasthatî têne dûr kirin.

Ji ber vê yekê, tevî her tiştî, pir tê pêşniyar kirin ku hemî guhêrbar di makroyên Excel de werin ragihandin.

Tiştek din jî heye ku meriv di dema ragihandina guhêrbaran de li ber çavan bigire. Mimkun e ku dema ragihandina guhêrbarek ti nirxan nede, lê di vê rewşê de ew nirxek xwerû digire. Bo nimûne:

  1. Rêz vala têne çêkirin.
  2. Hejmar nirxa 0 digirin.
  3. Guherbarên cureyê Boolean di destpêkê de xelet têne hesibandin.
  4. Dîroka bingehîn 30 Kanûn 1899 e.

Mînakî, hûn ne hewce ne ku hûn nirxa 0 ji guhêrbarek yekjimar re diyar bikin heke berê nirx nehatibe diyar kirin. Ew jixwe vê hejmarê dihewîne.

Vebijêrk Daxuyaniya eşkere

Ev gotin dihêle hûn hemî guhêrbarên ku di koda VBA-yê de têne bikar anîn ragihînin û berî ku kod were xebitandin hebûna konteynerên nedaxuyandî diyar bikin. Ji bo ku hûn vê taybetmendiyê bikar bînin, bi tenê rêzek koda Vebijarkê ya eşkere li jorê koda makro binivîsin.

Heke hûn hewce ne ku her carê vê gotinê di koda xwe de bicîh bikin, hûn dikarin wiya bi karanîna mîhengek taybetî ya di edîtorê VBA de bikin. Ji bo çalakkirina vê vebijarkê, divê hûn:

  1. Di rê de biçin hawîrdora pêşveçûnê - Amûr> Vebijêrk.
  2. Di pencereya ku piştî vê yekê vedibe, tabloya Edîtorê vekin.
  3. Û di dawiyê de, qutiya li tenişta xala Daxuyaniya Guherbara Pêwîstî kontrol bikin.

Piştî qedandina van gavan, bişkojka "OK" bikirtînin. 

Ew e, naha dema ku her makroyek nû dinivîse, ev rêz dê bixweber li jorê kodê were danîn.

Qada Berdewam û Guherbaran

Her guhêrbar an domdar tenê çarçoveyek sînorkirî heye. Ew girêdayî ye ku hûn li ku derê diyar dikin.

Bifikirin ku fonksiyonek me heye Tevahiya_Lêçûn(), û ew guhêrbar bikar tîne sVAT_Rate. Li gorî pozîsyona di modulê de, ew ê çarçoveyek cûda hebe:

Vebijêrk eşkere

Dim sVAT_Rate As Single

Fonksiyon Total_Cost() Wek Double

.

.

.

End Function

Ger guhêrbarek li serê modulek bixwe were ragihandin, ew li seranserê wê modulê belav dibe. Ango bi her prosedurê dikare were xwendin.

Wekî din, heke yek ji proseduran nirxa guhêrbar biguhezîne, wê hingê ya din jî dê vê nirxa rastkirî bixwîne. Lê di modulên din de ev guhêrbar dê dîsa jî neyê xwendin.

Vebijêrk eşkere

Fonksiyon Total_Cost() Wek Double

Dim sVAT_Rate As Single

   .

   .

   .

End Function

Di vê rewşê de, guhêrbar di hundurê prosedurê de tê ragihandin, û wergêr dê xeletiyek bavêje ger ew di prosedurek din de were bikar anîn.

Heke hûn dixwazin guhêrbar ji hêla modulên din ve were xwendin, divê hûn li şûna keyworda Dim-ê peyva Giştî bikar bînin. Bi heman awayî, hûn dikarin bi karanîna Daxuyaniya Giştî ya ku li şûna peyva Dim hatî nivîsandin, qada guhêrbarek tenê bi modula heyî ve sînordar bikin.

Hûn dikarin çarçoweya domdaran bi rengek wekhev destnîşan bikin, lê peyva sereke li vir bi operatorê Const re tê nivîsandin.

Li vir tabloyek bi mînakek baş heye ku ew çawa bi domdar û guherbaran re dixebite.

Vebijêrk eşkere

sVAT_Rate Giştî Wek Yekane

Const Giştî iMax_Count = 5000

Di vê nimûneyê de, hûn dikarin bibînin ka peyva Klavyeya Giştî ji bo ragihandina guhêrbarek çawa tê bikar anîn, û hûn çi hewce dikin ku di edîtorê Visual Basic de binivîsin da ku domdarek gelemperî ragihînin. Qada van konteynerên nirxê ji bo hemî modulan derbas dibe.
Vebijêrk eşkere

Taybetî sVAT_Rate Wek Yekane

Xerca Taybet iMax_Count = 5000

Li vir, guhêrbar û domdar bi karanîna keyworda Taybet têne ragihandin. Ev tê vê wateyê ku ew tenê di nav modula heyî de têne dîtin, û prosedurên di modulên din de nikarin wan bikar bînin.

Çima sabit û guherbar hewce ne

Bikaranîna berdewam û guherbaran dihêle hûn asta têgihîştina kodê zêde bikin. Û heke destpêkên bi gelemperî pirsên wan tune ku çima guhêrbar hewce ne, wê hingê di derbarê hewcedariya domdar de gelek nezelalî hene. Û ev pirs, di nihêrîna pêşîn de, pir mentiqî xuya dike. Beriya her tiştî, hûn dikarin guhêrbarek carekê ragihînin û careke din wê neguhezînin.

Bersiv di derheqê karanîna celebên daneyê yên ku di bîranînê de cîhek mezin digire de derdikeve holê ku li cîhek di heman planê de ye. Ger em bi hejmareke mezin a guherbaran re mijûl bibin, em dikarin bi xeletî konteynirek heyî biguhezînin. Ger bikarhêner destnîşan dike ku nirxek diyar çu carî nayê guhertin, wê hingê jîngeh dê bixweber vê yekê kontrol bike.

Ev bi taybetî dema ku makro ji hêla çend bernamenûsan ve hatî nivîsandin girîng e. Mirov dikare bizanibe ku divê hin guherbar neguhere. Û ya din ne. Ger hûn operatorê Const diyar bikin, pêşdebirek din dê zanibe ku ev nirx nayê guhertin.

An jî, heke domdarek bi yek navî hebe, û guhêrbar navek cûda, lê mîna hev hebe. Pêşvebir dikare bi hêsanî wan tevlihev bike. Ji bo nimûne, guherbarek ku ne hewce ye ku were guheztin jê re Variable11, û ya din ku dikare were sererast kirin jê re Variable1 tê gotin. Mirov dikare bixweber, dema kodê dinivîse, bi xeletî yekîneyek zêde biavêje û jê hay nebe. Wekî encamek, konteynera nirxan dê were guheztin, ku divê dest nede.

An jî pêşdebir bixwe dibe ku ji bîr bike ka kîjan guhêrbar dikare dest bide û kîjan nekare. Dema ku kod ji bo çend hefteyan tê nivîsandin pir caran ev dibe, û mezinahiya wê mezin dibe. Di vê demê de, pir hêsan e ku meriv ji bîr bike ku ev an wê guhêrbar tê çi wateyê.

Erê, hûn dikarin di vê rewşê de şîroveyan bikin, lê ma ne hêsantir e ku peyva Const diyar bike?

encamên

Guherîn hêmanek bingehîn a bernameya makro ye, ku dihêle hûn operasyonên tevlihev pêk bînin, ji hesaban bigire heya agahdarkirina bikarhêner li ser hin bûyeran an diyarkirina nirxên taybetî yên di hucreyên peldankek de.

Ger pêşdebir bi guman zanibe ku naveroka van konteyneran dê di pêşerojê de neyê guheztin divê domdar bêne bikar anîn. Tê pêşniyar kirin ku li şûna guhêrbaran neyê bikar anîn, ji ber ku gengaz e ku bi xeletî xeletiyek were kirin.

Leave a Reply