Ponekad je korisno čitati radni list red po red i selektivno uzimati podatke iz njega. Primjer u nastavku pokazuje kako se to radi.
Članak pretpostavlja da čitač ima prikazanu traku programera i da je upoznat sa VBA Editorom. Ako ne, molimo Google "Excel Developer Tab" ili "Excel Code Window".
Sljedeći primjer manipulira podacima tako što ispituje svaki red adresa e-pošte i spaja ih u jednu liniju adrese. Dok Excel ima ugrađene funkcije za transponiranje, namjeravamo sa našim kodom isključiti neke specifične adrese i dodati graničnike.
Našoj aplikaciji je potreban samo jedan list. Kopirajte donje informacije u ćeliju A1:
| E-mail adresa |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Postavite dugme na obrazac da biste pokrenuli kod.
Pretpostavimo da postoje stotine ovih e-poruka umjesto samo pet; želimo poslati svakoj istu poruku i istu kopiju našeg scenarija. Postoji nekoliko načina da se to uradi, a najznačajniji je pozivanjem programa za slanje e-pošte, poput Outlooka, iz VBA koda. Međutim, ova vježba služi dvjema svrhama:
- Pokažite kako se lako kretati kroz radni list;
- Istaknite Excel-ovu sposobnost da pregleda svaki red i postupite prema njemu.
VBA kod
VBA kod će spojiti sve adrese, umetajući tačku-zarez nakon svake, tako da se mogu u jednom potezu zalijepiti u polje za primatelja e-pošte. Iz koda ćete primijetiti da će, nakon pregleda redova, isključiti francuske.
Ubacite modul i unesite sljedeće:
Option Explicit
Dim strEmail As String
Dim strAll As String
Sub Main()
strAll = ""
Range("C2") = strAll 'clear previous program results
Sheets("Sheet1").Select
Range("A2").Select
Do While ActiveCell > "" 'loop until row 7
strEmail = ActiveCell
If Right(strEmail, 2) <> "fr" Then 'exclude France
strAll = strAll & strEmail & ";"
End If
Range("A" & ActiveCell.Row + 1).Select 'move on a row in the SAME column
Loop
Range("C2") = strAll
End Sub
Kod zadržava aktivnu ćeliju u koloni A, samo se redovi kreću dalje. Da bismo referencirali informacije na drugom mjestu u nizu, koristili bismo:
Variable = Activecell.offset(offset rows, offset columns)
Da biste dobili vrijednost iz stupca B u aktivnom redu, na primjer, kod bi se čitao Activecell.offset(0, 1). Da bismo dobili vrijednost A2 kada smo u A3, čitali bismo Activecell.offset(-1, 0).
Da biste testirali svoj kod, dodijelite tipku makrou “Main”.
Neki Internet provajderi, kao mera predostrožnosti protiv neželjene pošte, mogu ograničiti broj e-poruka koje možete poslati odjednom. Ako koristite ovu metodu, vjerovatno je najbolje provjeriti s njima prije nego što pošaljete stotine e-poruka odjednom.
Rukovanje oštećenjem Excel datoteke

Uvod za autora:
Felix Hooker je stručnjak za oporavak podataka DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući Popravak rar korupcija i sql softverski proizvodi za oporavak. Za više informacija posjetite www.datanumen.com
