Mine sisu juurde

Kasutaja:M2s17/meeldetuletused/VBA

Allikas: Vikipeedia

Exel[muuda | muuda lähteteksti]

Kuidas muuta makroga lahtri sisu[muuda | muuda lähteteksti]

Peamiselt on 4 erinaevat laadi väärtustele juurdepääsuks. Esimene on määrata ära x ja y arvuline kordinaatasend, teine on määrata ära lahtri täheline nimetus, kolmas lühikirjapanek ja neljas ise nimetatud lahtri väärtustamine.

1)  Cells(1, 1) = 1
2)  Range("B2") = 2
3)  [C3] = 3
4)  Range("lahter") = 2
5)Activecell.value=Activecell.value

Mis funktsioonid on erinevad võrreldes keskonna funktsioonidega[muuda | muuda lähteteksti]

Kasutatavamatest funktsioonidest on
1)  ruutjuur sqr   = sqrt
2)  aste     pow() = ^

Mida kujutab enesest i[muuda | muuda lähteteksti]

Tegemist on tavalise kordajaga, mida üldiselt kasutatakse kui massiivi/lahtri/veerud loendurit. Tema olemusest aru saamisest tuleb arus saada, et programeerimises antakse väärtused paremalt vasakule.

Kui vaatata muutujat, siis tema ülessandeks oleks väärtuseid hoida. Et ta saaks loenduriks, peaks ta hakkama süstemaatiliselt muutuma. Tavaliselt on selle süsteemiks korduslause nt:

dim i as integer

   do
      i=i+1
   loop until i>10

, see koodike näitab kuidas i hakkab süstemaatiliselt muutuma.

Deklareerides i täisarvuna, saab ta oma väärtuseks 0.
Täites esimest kora kordust, saab i väärutseks i olemasolev väärtus +1.
Nüüd on i väärtus 1, ta on väiksem, kui 10 siis jätkatakse kordust.
Seekord saab i uueks väärtuseks i olemasolev väärtus (mis on 1) +1.
Nüüd on i väärtus 2, ta on väiksem, kui 10 siis jätkatakse kordust.
Seekord saab i uueks väärtuseks i olemasolev väärtus (mis on 2) +1.
Nüüd on i väärtus 3, ta on väiksem, kui 10 siis jätkatakse kordust.
...
Seekord saab i uueks väärtuseks i olemasolev väärtus (mis on 8) +1.
Nüüd on i väärtus 9, ta on väiksem, kui 10 siis jätkatakse kordust.
Seekord saab i uueks väärtuseks i olemasolev väärtus (mis on 9) +1.
Nüüd on i väärtus 10, ta ei ole väiksem, kui 10 ja väljutakse kordusest.

Korduslause for[muuda | muuda lähteteksti]

Kui on vaja luua korrutiste tabel (20 arvuline), kasutades for korduste tsüklit, siis tehakse seda nõnda:

For i = 1 To 20
   For j = 1 To 20
      Cells(i, j) = i * j
   Next j
Next i

See võib tunduda hea lahendus, kuid seda ta ei ole. Mis eelnevaga on valesti tehtud, on see, et erinevate lahtrite poole on pöördututd 400 korda. Kuna objekti poole pöördumine võtab aega, siis et kiirendada protsessi tuleks pöördumisi vähendada.

Näide 2, siin pöördutakse objekti poole 1 kord ja antakse kõik väärtused üle. Vaheväärtused tõstame massiivi, ja pärast ütleme kuhu tuleks massiivist andmeid panna. Tulemuseks on momentaalne väärtuse kuvamine keskkonda.

Dim m(19, 19) As Long
For i = 1 To 20
   For j = 1 To 20
      m(i - 1, j - 1) = i * j
   Next j
Next i
Range("A1:T20") = m()

A1 tähistus[muuda | muuda lähteteksti]

Tähistust kasutatakse omaduse range() abiga. nt:

range("A1")="sisu"           'lahtri a1 väärtuseks määratakse "sisu"
range("A1:A3")="sisu"        'lahtrite a1,a2,a3 väärtuseks määratakse "sisu"
range("A1:A3,C1:C3")="sisu"  'lahtrite a1,a2,a3,c1,c2,c3 väärtuseks määratakse "sisu"
range("A:A")="sisu"          'kõigi veerul a paiknevate lahtrite väärtuseks määratakse "sisu"