Ҳодисаҳо дар Excel

Истилоҳот "Ҳодисаи Excel» барои нишон додани амалҳои муайяни корбар дар Excel истифода мешавад. Масалан, вақте ки корбар варақи китоби корро иваз мекунад, ин ҳодиса аст. Ворид кардани маълумот ба ячейка ё захира кардани китоби корӣ низ рӯйдодҳои Excel мебошанд.

Ҳодисаҳоро ба варақаи кории Excel, ба диаграммаҳо, китоби корӣ ё бевосита ба худи барномаи Excel пайваст кардан мумкин аст. Барномасозон метавонанд рамзи VBA эҷод кунанд, ки ҳангоми рух додани ҳодиса ба таври худкор иҷро карда мешавад.

Масалан, барои иҷро кардани макрос ҳар дафъае, ки корбар варақи кориро дар китоби кории Excel иваз мекунад, шумо рамзи VBA эҷод мекунед, ки ҳар дафъае, ки ин ҳодиса рӯй медиҳад, иҷро мешавад. SheetActivate дафтарчаи мехнатй.

Ва агар шумо хоҳед, ки макрос ҳар дафъае, ки шумо ба варақи кории мушаххас меравед (масалан, Лавҳаи 1), пас рамзи VBA бояд бо ҳодиса алоқаманд бошад фаъол барои ин варақ.

Рамзи VBA, ки барои коркарди рӯйдодҳои Excel пешбинӣ шудааст, бояд дар варақи корӣ ё объекти китоби корӣ дар равзанаи муҳаррири VBA ҷойгир карда шавад (муҳаррирро бо пахш кардани тугма кушодан мумкин аст) Alt + F11). Масалан, коде, ки бояд ҳар дафъае, ки ҳодисаи муайян дар сатҳи варақи корӣ рух медиҳад иҷро шавад, бояд дар равзанаи коди ин варақи корӣ ҷойгир карда шавад. Ин дар расм нишон дода шудааст:

Дар муҳаррири Visual Basic, шумо метавонед маҷмӯи ҳама рӯйдодҳои Excel-ро, ки дар китоби корӣ, варақи корӣ ё сатҳи диаграмма мавҷуданд, бубинед. Равзанаи рамзи объекти интихобшударо кушоед ва намуди объектро аз менюи чапи афтанда дар болои тиреза интихоб кунед. Менюи рости афтанда дар болои тиреза рӯйдодҳои барои ин объект муайяншударо нишон медиҳад. Дар расми зер рӯйхати рӯйдодҳои марбут ба варақаи кории Excel нишон дода шудааст:

Ҳодисаҳо дар Excel

Ҳодисаи дилхоҳро дар менюи рости афтанда клик кунед ва тартиби ба таври худкор ба равзанаи рамзи ин объект ворид карда мешавад. Sub. дар сари тартибот Sub Excel ба таври худкор далелҳои лозимиро ворид мекунад (агар бошад). Танҳо илова кардани коди VBA барои муайян кардани кадом амалҳо ҳангоми ошкор шудани ҳодисаи дилхоҳ тартиби иҷро кардан боқӣ мемонад.

мисол

Дар мисоли зерин, ҳар дафъае, ки ячейка интихоб карда мешавад B1 дар варақаи корӣ Лавҳаи 1 қуттии паём пайдо мешавад.

Барои иҷрои ин амал, мо бояд воқеаи варақаи корро истифода барем Интихоби_Тағйир, ки ҳар дафъае, ки интихоби ячейка ё диапазони ячейкаҳо тағйир меёбад. Функсия Интихоби_Тағйир ҳамчун далел қабул мекунад Ҳадаф объекти -. Ин аст, ки мо медонем, ки кадом диапазони ячейка интихоб шудааст.

ҳодиса Интихоби_Тағйир бо ҳар як интихоби нав рух медиҳад. Аммо мо бояд маҷмӯи амалҳоро танҳо ҳангоми интихоби ячейка иҷро кунем B1. Барои ин, мо воқеаро танҳо дар доираи муқарраршуда пайгирӣ хоҳем кард Ҳадаф. Чӣ тавр он дар коди барнома дар зер нишон дода шудааст:

'Рамз барои намоиши қуттии паём, вақте ки ячейкаи B1 дар варақаи кории ҷорӣ интихоб карда мешавад. Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Тафтиш кунед, ки ячейкаи B1 интихоб шудааст, агар Target.Count = 1 Ва Target.Row = 1 Ва Target.Column = 2 бошад, пас 'Агар ячейкаи B1 интихоб шуда бошад, пас паёмдони зеринро иҷро кунед "Шумо ячейкаи B1" End If End Sub-ро интихоб кард

Дин ва мазҳаб