Excel’is ir paprasta macros komanda

Categories MS ExcelPosted on

Ms-excel

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ę:

Fiksavimas

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ę:

Fiksavimas

Atsiranda tokia Developer kortelė:

Fiksavimas

Spaudžiam kairėje esantį mygtuką „Visual Basic“:

Fiksavimas1Ant 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“ Then

If Range(„E2“).Value = „“ Then
Rows(„5:8“).EntireRow.Hidden = False
ElseIf Range(„E2“).Value = „x“ Then
Rows(„5:8“).EntireRow.Hidden = True
End If

End If
End Sub

Fiksavimas6

Į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:

Fiksavimas3

Eilutės pradedant 5 ir baigiant 9 užslėptos. Jei „x“ ištrinsime – jos vėl atsiras.

 

4 comments

  1. 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

    1. 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

Parašykite komentarą

IP Blocking Protection is enabled by IP Address Blocker from LionScripts.com.
%d bloggers like this: