piektdiena, 2012. gada 23. novembris

Excel macros examples

Excel piedāvā diezgan daudz iespēju, taču ne vienmēr visi tās izmanto. Cilvēki, kuri ik dienā strādā ar lielām datu tabulām iespējams, ka ir dzirdējuši par pivot tabulām, kurās ir iespējams veikt kolonnu filtrēšanu un datu atlasīšanu. Taču papildus visam šim vēl ir daudz un dažādas iespējas, kuras atvieglo darbu ar datiem. Piemēram, izveidojot excel macros, ar nelilu koda gabalu ir iespējams veikt datu atlasīšanu pēc dažādiem nosacījumiem, veikt sarežģītus aprēķinus un vel daudz ko citu. Ir iespējams izveidot dažādas simulācijas, ar pogām, kur notiek dažādu datu aprēķināšana. Visas šīs iespēja atvieglo darbu ar excel tabulām, ja tajās ir diezgan daudz datu.


Zemāk pievienošu nelielu excel macros fragmentu, lai varētu aplūkot kādā veidā, tad tiek rakstīts macros kā arī pieraksts jeb sintakse būs redzama. Blakus būs komentāri, lai aptuveni saprastu, kas tiek darīts.


Sub Macro1()                // šis ir excel macros nosaukums

a = 2
b = 2
rindas = Cells(2, 18).Value

// a, b un rindas ir konstantes, kur rindas ir kopējais rindu skaits, bet a un b ir rinda no, kuras jāsak skatīties ieraksti.

For i = 2 To kolonnas + 1                     // šeit sākās cikls, kur iet cauri visam rindām
  If (Cells(i, 25).Value = 1) And (Cells(i, 7).Value = 1) Then                      // vertību pārbaude
    Cells(a, 30).Value = Cells(i, 22).Value
    Cells(a, 31).Value = Cells(i, 23).Value
    Cells(a, 32).Value = Cells(i, 24).Value

  a = a + 1   // rindas indekss palielinās tikai, tad, ja iepriekš ir izpildjies nosacījums
End If

If Cells(i, 25).Value = 1 Then
  If Cells(i, 20).Value <> Cells(b - 1, 28) Then
    Cells(b, 27).Value = Cells(i, 19).Value
    Cells(b, 28).Value = Cells(i, 20).Value
    Cells(b, 29).Value = Cells(i, 21).Value

    b = b + 1  // līdzīgi kā iepriekš, rindas indekss palielinās tikai, tad, ja izpildās nosacījums
End If
End If

Next i            // palielina cikla mainīgo i par viens

End Sub



Kopumā pārbaudes tiek veiktas, lai atsijātu nevajadzīgos datus, piemēram, vienādos datumus konkrētam cilvēkam. Ejot cauri ciklā visām rindām, ir ātri iespējams dabūt nepieciešamos datus. Aptuveni šādā veidā ir iespējams izmantot excel macros, taču tas nav viss, vēl ir daudz un dažādi pielietojumi. Kā jau iepriekš minēju, tad iespējams izveidot pogas, ar kuru palīdzību tiek izsaukt konkrēts macros un attiecīgi tas veic nepieciešamo darbību. Sintakse vairāk vai mazāk ir tāda pati kā citam programmēšanas valodām, nekas īpaši sarežģīts nav tīri loģiskās operācijas.

Nav komentāru:

Ierakstīt komentāru