Kako prelistati vaš Excelov delovni list z VBA

Skupna raba zdaj:

Včasih je koristno prebrati delovni list po vrsticah in selektivno jemati podatke iz njega. Spodnji primer prikazuje, kako to storiti.

Članek predvideva, da ima bralec prikazan trak za razvijalce in da je seznanjen z urejevalnikom VBA. V nasprotnem primeru prosimo za Google »Excel Developer Tab« ali »Excel Code Window«.

Naslednji primer manipulira s podatki tako, da preuči vsako vrstico e-poštnih naslovov in jih združi v eno naslovno vrstico. Medtem ko ima Excel vgrajene funkcije Transpose, nameravamo z našo kodo izključiti nekatere posebne naslovnike in dodati ločila.

Naša aplikacija potrebuje samo en list. Kopirajte spodnje podatke v celico A1:

E-mail naslov
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

Postavite gumb na obrazec za začetek kode.Na obrazec položite gumb za začetek kode

Predpostavimo, da je teh e-poštnih sporočil na stotine namesto le pet; vsakemu želimo poslati isto sporočilo in isto kopijo našega scenarija. To lahko storimo na več načinov, predvsem pa s klicanjem e-poštnega programa, kot je Outlook, iz kode VBA. Vendar pa ta vaja služi dvema namenoma:

  • Pokažite, kako enostavno kolesarite po delovnem listu;
  • Poudarite sposobnost Excela, da preuči vsako vrstico in ukrepa po njej.

Koda VBA

Koda VBA bo združila vse naslove in za vsakim vstavila podpičje, tako da jih bo mogoče z enim potezom prilepiti v polje naslovnika e-pošte. Iz kode boste opazili, da bo po pregledu vrstic izključila francoske.

Vstavite modul in vnesite naslednje:

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

Koda ohranja aktivno celico v stolpcu A, le vrstice se premikajo naprej. Za sklicevanje na informacije drugje zapored bi uporabili:

Variable = Activecell.offset(offset rows, offset columns)

Če bi na primer dobili vrednost iz stolpca B v aktivni vrstici, bi se koda prebrala Activecell.offset (0, 1). Če bi dobili vrednost A2, ko smo v A3, bi prebrali Activecell.offset (-1, 0).

Če želite preizkusiti kodo, dodelite gumb makru »Main«.

Nekateri ponudniki internetnih storitev lahko kot previdnostni ukrep omejijo število e-poštnih sporočil, ki jih lahko pošljete hkrati. Če uporabljate to metodo, je verjetno najbolje, da se z njimi posvetujete, preden naenkrat odprete na stotine e-poštnih sporočil.

Obravnavanje poškodovanih datotek Excel

Poškodba datoteke ExcelObčasno naletimo na poškodbe delovnih zvezkov do te mere, da jih Excel sam ne more več obnoviti. To je katastrofa za večino uporabnikov Excela, vključno s strokovnjaki. Če pa imate pri roki učinkovito orodje za obnovitev, lahko obnovite poškodovane datoteke xlsx enostavno in hitro.

Uvod avtorja:

Felix Hooker je strokovnjak za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z popravilo rar korupcija in sql programske izdelke za obnovitev. Za več informacij obiščite www.datanumen.com

Skupna raba zdaj:

Komentarji so zaprti.