Pastebėjau, kad Lietuvos blogosferoje nėra nė vieno blogo, kuris kažką rašytų MS Excel tema. Na, o gal yra, bet aš nepastebėjau, todėl sakykim, kad nėra. Taip jau atsitiko, kad pakeičiau pareigas ir dabar visa mano darbo dieną prabėga atsidarius Excelio sheet’us. Kasdien sužinau vis ką nors naujo ir įdomaus. Todėl tomis žiniomis pasidalinsiu ir čia. Kartais tai bus galbūt kas nors labai elementaraus, bet gal ne visiems žinoma. Tai vat, jeigu ir patiems kyla kokių nors klausimų šia tema – rašykit nes ir man daug dalykų dar yra nežinomų ir būtų įdomu sužinoti.
Taigi, šiandien susidūriau su naujiena savo gyvenime – macros’ais. Macros’us tenka naudoti kai paprastoms excel’io funkcijoms nebeužtenka galių. Šiandien turėjau tam tikrą formą ir joje turėjo būti toks funkcionalumas, kad uždėjus x viename langelyje excel’io lape atsiranda papildomos eilutės su reikalinga užpildyti informacija.
Pateiksiu pavyzdėlį kaip tai veikia. Sakykim turim tokią lentelę:
Tai dabar padarykim taip, kad langelyje šalia „Taip” įrašius „x” žemiau esanti lentelė pradingtų. Na, ji ne šiaip pradings, o tiesiog 5-8 eilutės bus paslėptos.
Pirmiausia reikia į meniu juostą įtraukti „Developer” kortelę. Einam File–> Options –> Customize Ribbon ir ties Developer uždedam varnelę:
Atsiranda tokia Developer kortelė:
Spaudžiam kairėje esantį mygtuką „Visual Basic”:
Ant Sheet1 paspaudžiam du kartus su kairiu pelės klavišu, arba kartą dešiniu ir pasirinkti „View Code”. Ir tuomet rašome tokį koduką:
Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Name = „Sheet1” ThenIf Range(„E2”).Value = „” Then
Rows(„5:8”).EntireRow.Hidden = False
ElseIf Range(„E2”).Value = „x” Then
Rows(„5:8”).EntireRow.Hidden = True
End IfEnd If
End Sub
Įrašę išsaugom ir uždarom developer langą. Kas angliškai supranta, tai kodas čia labai aiškus, ir net programavimo neišmanantiems. Todėl pakoreguoti taip pat nebus sunku.
Taigi įrašę į langelį E2 „x” gauname:
Eilutės pradedant 5 ir baigiant 9 užslėptos. Jei „x” ištrinsime – jos vėl atsiras.
Kokį tekstą įrašyti, kad sujungtų dvi ir daugiau sąlygų? Pvz. Jei įrašai 2, tai užsihidina 5 eilutė, jei 3, tai 5 ir 6 eilutės ar pan
Tiesiog po pirmuoju stulpeliu įterpi antrą. Tavo kodas turėtų atrodyti maždaug taip:
Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.Name = „Sheet1“ Then
If Range(„E2“).Value = „“ Then
Rows(„5“).EntireRow.Hidden = False
ElseIf Range(„E2“).Value = „2“ Then
Rows(„5“).EntireRow.Hidden = True
End If
If Range(„E2“).Value = „“ Then
Rows(„5:6“).EntireRow.Hidden = False
ElseIf Range(„E2“).Value = „3“ Then
Rows(„5:6“).EntireRow.Hidden = True
End If
End If
End Sub
Cool. Ačiū