Kako proći kroz svoj Excel radni list pomoću VBA

Podijeli sada:

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

Oštećenje Excel datotekeS vremena na vrijeme nailazimo na oštećenje radnih knjiga do te mjere da ih sam Excel ne može oporaviti. To je katastrofa za većinu Excel korisnika, uključujući i stručnjake. Međutim, ako imate pri ruci efikasan alat za oporavak, možete vratiti oštećene xlsx datoteke lako i brzo.

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

Podijeli sada:

Komentari su zatvoreni.