ÒdinatèLojisyèl

VBA Excel: Pwogram echantiyon. Makro nan Excel

Gen anpil moun konnen ke vèsyon an premye nan popilè pwodwi a Microsoft Excel parèt nan 1985. Depi lè sa a li te sibi modifikasyon plizyè ak demann nan dè milyon de itilizatè atravè mond lan. Sepandan, anpil travay sèlman ak yon kapasite ti kras nan sa a calcul epi yo pa menm konnen ki jan yo te kapab fè lavi pi fasil pou kapasite nan pwogram Excel.

Ki sa ki se VBA

se Programmation nan Excel fè pa vizyèl Debaz pou Aplikasyon lang programmation ki te orijinèlman bati nan calcul a ki pi popilè soti nan Microsoft.

Yo merite l 'ekspè atribi fasilite relatif la nan devlopman. Kòm montre pratik, VBA ka metrize Basics yo, menm itilizatè ki pa gen konpetans pwogram pwofesyonèl. Pou VBA karakteristik genyen ladan yo ekzekisyon script nan anviwònman an aplikasyon biwo yo.

Dezavantaj nan nan pwogram lan yo se pwoblèm ki asosye avèk konpatibilite a nan diferan vèsyon. Yo yo ki te koze pa lefèt ke kòd la VBA nan pwogram nan refere a fonctionnalités a ki prezan nan vèsyon an nouvo nan pwodwi a, men se pa nan yon sèl la fin vye granmoun. Genyen tou se yon gwo dezavantaj ak two wo ouvèti nan kòd chanje figi a nan yon moun lòt nasyon. Sepandan, Microsoft Office, ak IBM Lotus Symphony pèmèt itilizatè yo aplike chifreman Kòd antre ak modpas anviwònman wè li.

Objè, koleksyon, pwopriyete, ak metòd

Li se ak sa yo konsèp ou bezwen konprann moun ki ap ale nan travay nan anviwònman an VBA. Premye a tout, ou dwe konprann sa objè a se. Nan Excel, nan zak sa a kòm yon fèy, yon liv, ak ranje selilè. Bagay sa yo gen yerachi espesyal, dir obeyi youn ak lòt.

Chèf nan mitan yo se aplikasyon an, pwogram nan Excel korespondan tèt li. Klaseur swiv, fich, ak Range. Pou egzanp, pou al gade nan selil A1 sou yon fèy espesifik dwe pwen wout la, pran an kont yerachi a.

Konsènan konsèp nan "koleksyon," gwoup sa a nan bagay ki gen klas la menm, nan ki se anrejistreman bay ChartObjects. eleman li yo ki ap tou objè yo.

Next bagay - pwopriyete. Yo se yon karakteristik nesesè nan nenpòt ki objè. Pou egzanp, pou Range la - se yon Valè oswa Fòmil.

Metòd - se yo lòd, ki yo fè montre ke ou vle fè. Lè w ap ekri kòd nan VBA yo dwe separe soti nan pwen an objè. Pou egzanp, kòm yo pral montre pita, trè souvan lè pwogramasyon nan lòd a "Excel" itilize Selil (1,1) .Chwazi. Sa vle di ke li se nesesè yo chwazi yon selil ki gen kowòdone (1,1), dir A1.

Sepandan, li se souvan yo itilize Selection.ClearContents. aplikasyon li se netwaye sa ki nan selil la chwazi.

Ki jan yo kòmanse

Premye a tout, ou vle kreye dosye a, epi sove li, bay yon non ak chwazi ki kalite «Liv Excel macro-pèmèt."

Lè sa a, ale nan aplikasyon an VB, ki se ase yo sèvi ak yon konbinezon de «Alt» kle yo ak «F11». Next:

  • nan ba meni an nan tèt la nan fenèt la, klike sou icon nan pwochen nan icon nan Excel;
  • Mudule chwazi lòd;
  • kenbe klike sou icon a ak ki gen kapasite a lage lage;
  • ekri, di, yon deskripsyon kòd.

Li sanble jan sa a:

pwogram Gwoup ()

'Kòd nou

Fen Gwoup

Tanpri note ke liy lan " 'Kòd nou an" pral make nan yon koulè diferan (vèt). Rezon ki fè la pou sa a apostwòf, lage nan kòmansman an nan fisèl la, ki endike ke sa ki swiv la se yon kòmantè.

Koulye a, ou ka ekri nenpòt kòd ak kreye pou tèt yo yon nouvo zouti nan VBA Excel (wè pwogram yo echantiyon. Elatriye). Natirèlman, moun ki yo abitye avèk Basics yo nan vizyèl Debaz, li pral pi fasil. Sepandan, menm moun ki pa gen, si ou vle pou kapab jwenn konfòtab byen vit.

Makro nan Excel

Dèyè non sa a kache pwogram ekri nan vizyèl Debaz pou lang Aplikasyon. Se konsa, pwogram nan Excel - se kreye yon macro nan kòd la vle. Avèk kapasite sa a, Microsoft calcul pwòp tèt ou-devlope, adapte a kondisyon yo ki nan yon itilizatè patikilye. Èske w gen te fè fas ak ki jan yo kreye modil pou ekri makro, li se posib yo kontinye ak egzanp konkrè nan pwogram VBA Excel. Li pi bon yo kòmanse avèk kòd yo ki pi fondamantal.

EGZANP 1

Sa pou fè: Ekri yon pwogram ki pral kopi valè a nan sa ki nan yon selil ak Lè sa a ekri nan yon lòt.

Pou fè sa a:

  • louvri tab la "View";
  • deplase icon "makro yo";
  • souke nan "Macro nan Dosye";
  • ranpli louvri fòm.

Pou senplisite, nan "Non a Macro" kite "Makros1" ak nan "kle a rakoursi" se eleman, pou egzanp, HH (sa vle di ke ou ka kouri pwogram nan egzanp yo pral «Ctrl + h» Blitz ekip). Sur Antre nan.

Kounye a ke ou te kòmanse anrejistreman macro a, l 'a renmèt sa ki nan yon selil nan yon lòt. Retounen nan icon nan orijinal la. Klike sou "Macro nan Dosye". Aksyon sa a make fini an nan applets.

Next:

  • ankò deplase ou nan fisèl la "Makro";
  • se chwazi nan lis la "Macro 1";
  • klike sou "Run" (aksyon menm la kòmanse lanse kle chemen kout «Ctrl + HH»).

Kòm yon rezilta, aksyon an ki te fèt pandan anrejistreman macro la.

Li fè sans yo wè ki jan kòd la sanble. Pou fè sa, tounen nan fisèl la "Makro" ak klike sou "Edit" oswa "Antre nan". Kòm yon rezilta, yo jwenn tèt yo nan anviwònman an VBA. Aktyèlman, se kòd la tèt li lokalize ant liy macro Makros1 Gwoup () ak Gwoup Fen.

Si kopye te fè, pou egzanp, ki soti nan yon selil A1 nan C1 selilè, youn nan liy ki nan kòd pral gade tankou Range ( "C1"). Chwazi. Nan tradiksyon, li sanble tankou "Range (" C1 "). Chwazi", nan lòt mo, fè yon tranzisyon nan VBA Excel, nan C1 selilè.

Yon pati aktif nan kòd la konplete ekip ActiveSheet.Paste. Li vle di anrejistreman sa chwazi selil (nan ka sa a, A1) nan C1 nan selil chwazi.

EGZANP 2

VBA sik ede kreye makro diferan nan Excel.

VBA sik ede kreye makro diferan. Sipoze ke gen yon y fonksyon = x + x 3 + 3x 2 - kosinis (x). Ou vle yo kreye yon macro pou grafik li yo. Sa a ka fè sèlman lè l sèvi avèk VBA sik.

Pou valè inisyal la ak final nan fonksyon agiman pran x1 = 0 ak x2 = 10. Anplis de sa, li nesesè prezante yon konstan - valè a pou etap chanje agiman an ak yon valè inisyal pou kontwa an.

Tout egzanp sou VBA Excel makro yo kreye lè l sèvi avèk pwosedi a menm jan yo tabli pi wo a. Nan ka sa a an patikilye, kòd a sanble:

Gwoup progranm ()

x1 = 1

x2 = 10

beze = 0.1

mwen = 1

Pandan ke x1

y = x1 + x1 ^ 2 + 3 * x1 ^ 3 - Kòs (x1)

Selil (m, 1) .Valè = x1 (valè x1 ekri nan memwa a ak kowòdone a (mwen, 1))

Selil (m, 2) .Valè = y (Se valè y ekri nan selil la ak kowòdone a (mwen, 2))

mwen = mwen + 1 (valab konte);

x1 = x1 + beze (Se agiman chanje nan gwosè a etap);

Loop

Fen Gwoup.

Kòm yon rezilta nan sa a macro kouri "Excel" jwenn de kolòn, premye a nan yo ki anrejistre valè yo pou x, ak dezyèm lan - nan y.

Lè sa a, pran kapab bati sou yo, estanda a pou "Excel".

EGZANP 3

Pou aplike sik nan VBA Excel 2010, osi byen ke nan vèsyon lòt, ansanm ak Èske a deja redwi Pandan ke konsepsyon itilize pou.

Konsidere yon pwogram ki ka kreye yon kolòn. Nan chak selil li yo pral anrejistre kare ki koresponn nimewo liy. Pou yo sèvi ak nan desen an pral pèmèt nan dosye li trè yon ti tan, san yo pa itilize nan yon vann san preskripsyon.

Premye li nesesè yo kreye yon macro, jan sa dekri pi wo a. Apre sa, ekri kòd nan tèt li. Nou kwè ke nou enterese nan valè yo pou 10 selil yo. Kòd la se jan sa a.

Pou mwen = 1 rive nan 10 Next

se yo lòd, ki transfere nan lang lan "imen", kòm "repete nan 1 rive nan 10 nan ogmantasyon nan youn."

Si travay la yo resevwa kolòn nan ak kare, pou egzanp, tout nonm antye enpè ant 1 ak 11, nou ekri:

Pou mwen = 1 a 10 etap 1 Next.

Isit la, etap - etap. Nan ka sa a, li se egal a de. Pa default, absans la nan pawòl Bondye a nan bouk la vle di ke yon etap sèl.

Rezilta yo bezwen dwe estoke nan kantite selil (mwen, 1). Lè sa a, chak fwa ou kòmanse sik la ak yon ogmantasyon nan valè a nan mwen etap pral otomatikman grandi ak nimewo liy. Se konsa, pral gen Kòd optimize.

An jeneral, kòd a ta gade tankou:

pwogram Gwoup ()

Pou mwen = 1 A 10 Etap 1 (ka ekri sèlman Pou mwen = 1 Pou 10)

Selil (m, 1) .Valè = m ^ 2 (Se dir valè kare ekri nan selil la (mwen, 1) mwen)

Next (nan yon sans jwe yon wòl nan vann san preskripsyon vle di la ak yon lòt sik kòmanse)

Fen Gwoup.

Si fè yo kòrèkteman, ki gen ladan anrejistreman ak kouri makro (wè. Enstriksyon yo anwo a), lè sa a li se te rele chak fwa yo ap yon gwosè bay ka jwenn kolòn (nan ka sa a ki gen ladan 10 selil).

EGZANP 4

Nan lavi chak jou, trè souvan li nesesè pran sa a oswa ki desizyon depann sou kèk kondisyon. pa ka fè san yo nan VBA Excel. Men kèk egzanp sou pwogram ki kote kou a plis nan algorithm a chwazi olye pou yo okòmansman Predetermined, pi souvan itilize konsepsyon de Si ... Lè sa a (pou ka difisil) Si ... Lè sa a ... END Si.

Konsidere ka-a an patikilye. Sipoze ou vle kreye yon macro pou "Excel" nan selil la ak kowòdone a (1,1) ki te anrejistre:

1 si agiman an se pozitif;

0 si agiman an se zewo;

1, si agiman an se negatif.

Kreyasyon an tout moun ki tankou yon macro pou "Excel" kòmanse nan yon fason estanda, nan sèvi ak "cho" kle Alt ak F11. Pli lwen ekri kòd la yo:

pwogram Gwoup ()

x = Selil (1, 1) .Valè (Kòmandman sa a asiyen valè a nan x kowòdone de sa ki selil (1, 1))

Si x> 0 Lè sa a, Selil (1, 1) .Valè = 1

Si x = 0 Lè sa a, Selil (1, 1) .Valè = 0

Si x <0 Lè sa a, Selil (1, 1) .Valè = -1

Fen Gwoup.

Li rete yo kouri nan yon macro epi pou yo jwenn nan "Excel" vle valè pou agiman an.

VBA fonksyon

Kòm ou ka remake gen, nan pwogram aplikasyon an ki pi popilè calcul Microsoft se pa twò difisil. Espesyalman si ou aprann kouman yo sèvi ak VBA fonksyon. Nan total la, lang programmation sa a te kreye espesyalman pou ekri aplikasyon pou nan "Excel" se sa Pawòl la, sou 160 fonksyon. Yo ka divize an plizyè gwoup gwo. Yo yo se:

  • fonksyon matematik. W ap fè aplikasyon yo agiman an ki gen valè nan kosinis se jwenn, logaritm natirèl la, e konsa pati a tout antye.
  • fonksyon finansye. Akòz disponiblite ak itilize pwogram yo nan Excel, ou ka jwenn zouti efikas pou kontablite ak règleman finansye.
  • pwosesis etalaj fonksyon. Men sa yo enkli etalaj, IsArray; LBound; UBound.
  • VBA Excel fonksyone pou liy lan. Sa a se yon jistis gwo gwoup. Li gen ladan l, pou egzanp, fonksyon Espas yo kreye yon fisèl ak yon kantite twou vid ki genyen egal a agiman an nonb antye relatif oswa transfè Asc senbòl ANSI kòd. Yo tout yo lajman itilize ak pèmèt ou travay avèk strings nan "Excel la" yo kreye aplikasyon pou pi fasil yo travay avèk tab sa yo.
  • Done kalite konvèsyon fonksyon. Pou egzanp, CVar retounen Ekspresyon agiman, konvèti li nan Variant kalite done.
  • Dat fonksyon. Yo anpil elaji karakteristik yo ki estanda nan "Excel". Se konsa, WeekdayName fonksyon retounen non an (plen oswa an pati) nan jou a nan semèn nan pa kantite li yo. Menm plis itil se minutri la. Li bay ki kantite segonn sa yo ki te pase depi minwi nan yon moman patikilye nan jounen an.
  • Fonksyone konvèti yon agiman nimerik nan sistèm yo nimewo diferan. Pou egzanp, Disparèt sorties nan reprezantasyon oktal nan nimewo a.
  • fòma fonksyon. Ki pi enpòtan an nan sa yo se Fòma an. Li retounen yon Variant ak yon ekspresyon fòma selon enstriksyon bay nan deskripsyon an nan fòma an.
  • ak pou fè.

Etid la nan pwopriyete yo nan fonksyon sa yo ak aplikasyon yo pral siyifikativman elaji sijè ki abòde lan nan "Excel".

EGZANP 5

Ann eseye rezoud pwoblèm pi konplike. Pou egzanp:

Dann papye dokiman nivo aktyèl la nan depans pou rapò a antrepriz. mande pou:

  • devlope pòsyon modèl li yo pa calcul "Excel";
  • fè yon pwogram VBA ki pral mande pou done anvan tout koreksyon ranpli li, pote soti nan kalkil ki nesesè yo ak ranpli nan modèl la nan selil ki koresponn lan.

Konsidere youn nan solisyon sa yo.

Kreye yon modèl

Tout aksyon yo fè sou yon fèy estanda nan Excel. selil gratis rezève pou k ap antre nan done sou mwa, ane, konpayi yo tit-konsomatè yo, kantite lajan an nan depans sa yo, nivo yo nan woulman. Kòm kantite a nan konpayi (konpayi), nan respè nan yo ki rapò a se pa sa anrejistre, selil yo fè sou baz la nan valè ak non pwofesyonèl se pa sa rezève an davans. Worksheet asiyen nan yon nouvo non. Pou egzanp, "Օ Rapò".

varyab

Pou ekri pwogram nan otomatikman ranpli nan modèl la, chwazi notasyon an. Yo pral gen pou itilize pou varyab yo:

  • NN- kantite ranje aktyèl la nan tablo a;
  • TP ak TF - te planifye ak aktyèl woulman;
  • SF ak SP - aktyèl e te planifye depans manm;
  • IP ak SI - te planifye ak depans aktyèl nivo.

Nou endike pa lèt yo menm, men ki gen yon "prefiks» manm akimilasyon Itog pou sa kolòn. Pou egzanp, ItogTP - Ak rèspè nan kolòn nan gen dwa, kòm "woulman an te planifye."

Solisyon nan pwoblèm nan lè l sèvi avèk VBA pwogram

Lè l sèvi avèk notasyon sa a, nou jwenn fòmil la pou divèjans nan. Si ou vle pote soti nan kalkil la nan% a nou gen (F - P) / P * 100, ak nan kantite lajan an nan - (F - P).

Rezilta yo de a kalkil sa yo kapab pi bon jis fè "Excel" calcul nan selil yo ki apwopriye yo.

Pou rezilta a ak pronostik nan reyalite te jwenn nan fòmil ItogP = ItogP + P ak ItogF = ItogF + F.

Pou itilize devyasyon = (ItogF - ItogP) / ItogP * 100 si se kalkil la te pote soti kòm yon pousantaj, epi si valè an total - (ItogF - ItogP).

Rezilta yo yon lòt fwa ankò ekri nan selil yo ki apwopriye, se konsa pa gen okenn bezwen yo asiyen yo varyab.

Anvan ou kòmanse yo kreye yon pwogram ou vle sove workbook la, pou egzanp, sou non nan "Otchet1.xls".

Sur "Kreye yon tab rapò," ou dwe peze sèlman 1 tan apre k ap antre nan enfòmasyon ki header. Ou ta dwe konnen ak lòt règleman yo. An patikilye, bouton an "Ajoute yon liy" yo dwe bourade chak fwa apre k ap antre nan tab la nan valè pou chak aktivite. Apre k ap antre nan tout done yo oblije peze bouton an "Fini", ak Lè sa chanje nan "Excel" nan fenèt la.

Kounye a ke ou konnen ki jan yo rezoud pwoblèm nan pou Excel ak makro. kapasite nan sèvi ak VBA Excel (wè pwogram echantiyon. Pi wo pase) ak ou ka bezwen nan travay nan anviwònman an nan popilè ki pi nan moman sa a, editè a tèks "Pawòl." An patikilye, pa anrejistre, jan yo montre nan konmansman an nan atik sa a, ou pa ekri kòd yo kreye bouton sa yo meni nan ki ka anpil nan operasyon yo sou tèks la dwe fè pa peze kle yo nan sèvis oswa atravè "View" icon an ak "Makro" tab.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ht.birmiss.com. Theme powered by WordPress.