Kako pretraživati ​​svoj Excel radni list s VBA

Podijeli sada:

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

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 Excelovih korisnika, uključujući i stručnjake. Međutim, ako imate pri ruci učinkovit 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 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

Podijeli sada:

Komentari su zatvoreni.