Ponekad je korisno čitati radni list red po red i selektivno uzimati podatke iz njega. Primjer u nastavku pokazuje kako to učiniti.
Članak pretpostavlja da čitatelj ima prikazanu vrpcu za razvojne programere i da je upoznat s VBA uređivačem. Ako ne, molimo proguglajte “Excel Developer Tab” ili “Excel Code Window”.
Sljedeći primjer manipulira podacima ispitivanjem svakog retka adresa e-pošte i njihovim spajanjem u jedan red adrese. Dok Excel ima ugrađene funkcije za transponiranje, s našim kodom namjeravamo isključiti neke specifične primatelje i dodati graničnike.
Za našu aplikaciju potreban je samo jedan list. Kopirajte podatke ispod u ćeliju A1:
| Adresa e-pošte |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Postavite gumb na obrazac za pokretanje koda.
Pretpostavimo da postoje stotine ovih e-poruka umjesto samo pet; želimo svakoj poslati istu poruku i istu kopiju našeg scenarija. Postoji nekoliko načina da se to učini, 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 jednostavno kružiti kroz radni list;
- Istaknite mogućnost Excela da ispita svaki redak i postupi u skladu s tim.
VBA kod
VBA kôd spojit će sve adrese, umetnuvši točku-zarez iza svake, tako da se mogu zalijepiti u jednom potezu u polje primatelja e-pošte. Iz koda ćete primijetiti da će, nakon pregleda redaka, isključiti francuske.
Umetnite 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 stupcu A, samo se redovi pomiču dalje. Za referenciranje informacija negdje drugdje u nizu, koristili bismo:
Variable = Activecell.offset(offset rows, offset columns)
Da biste dobili vrijednost iz stupca B u aktivnom retku, na primjer, kod bi glasio Activecell.offset(0, 1). Da bismo dobili vrijednost A2 kada smo u A3, glasilo bi Activecell.offset(-1, 0).
Da biste testirali svoj kod, dodijelite gumb makrou "Main".
Neki davatelji internetskih usluga, kao mjeru opreza protiv spama, mogu ograničiti broj e-poruka koje možete poslati odjednom. Ako koristite ovu metodu, vjerojatno je najbolje provjeriti s njima prije slanja stotina e-poruka odjednom.
Rješavanje oštećenja Excel datoteka

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