Ako prechádzať pracovným hárkom programu Excel s VBA

Zdieľať teraz:

Niekedy je užitočné prečítať si pracovný hárok riadok po riadku a selektívne z neho zobrať údaje. Nižšie uvedený príklad ukazuje, ako to urobiť.

V článku sa predpokladá, že čitateľ má zobrazenú pásku pre vývojárov a je oboznámený s editorom VBA. Ak nie, navštívte Google kartu „Vývojár Excel“ alebo „Okno kódu Excel“.

Nasledujúci príklad manipuluje s údajmi preskúmaním každého riadku e-mailových adries a ich spojením do jedného riadku adresy. Aj keď má Excel zabudované funkcie Transpose, naším kódom chceme vylúčiť niektorých konkrétnych adresátov a pridať oddeľovače.

Naša aplikácia potrebuje iba jeden hárok. Skopírujte nižšie uvedené informácie do bunky A1:

Emailová adresa
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

Vložte kód do formulára, aby ste kód spustili.Umiestnite gombík na formulár, ktorým sa kód odštartuje

Predpokladajme, že týchto e-mailov sú stovky namiesto iba piatich; chceme každému poslať rovnakú správu a rovnakú kópiu nášho scenára. Existuje niekoľko spôsobov, ako to urobiť, najmä volaním e-mailového servera, ako je Outlook, z kódu VBA. Toto cvičenie však slúži na dva účely:

  • Ukážte, ako ľahko prechádzať pracovným listom;
  • Zvýraznite schopnosť programu Excel preskúmať každý riadok a konať podľa neho.

Kódex VBA

Kód VBA spojí všetky adresy a za každú vloží bodkočiarku, aby ich bolo možné prilepiť jedným prechodom do poľa adresáta e-mailu. Z kódu si všimnete, že po preskúmaní riadkov vylúči tie francúzske.

Vložte modul a zadajte nasledujúce:

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

Kód udržuje aktívnu bunku v stĺpci A, iba riadky sa pohybujú ďalej. Na odkazovanie na informácie inde v rade by sme použili:

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

Na získanie hodnoty zo stĺpca B v aktívnom riadku by sa napríklad načítal kód Activecell.offset (0, 1). Čítanie, aby sme dostali hodnotu A2, keď sme v A3 Activecell.offset (-1, 0).

Ak chcete otestovať svoj kód, priraďte tlačidlo k makru „Hlavné“.

Niektorí poskytovatelia internetových služieb môžu v rámci ochrany proti spamu obmedziť počet e-mailov, ktoré môžete naraz odoslať. Ak použijete túto metódu, je pravdepodobne najlepšie skontrolovať ich pred odoslaním stoviek e-mailov naraz.

Zaobchádzanie s poškodením súborov programu Excel

Poškodenie súborov programu ExcelZ času na čas sa stretávame s poškodením zošitov do takej miery, že ich samotný Excel nedokáže obnoviť. To je katastrofa pre väčšinu používateľov Excelu vrátane expertov. Ak však máte po ruke účinný nástroj na obnovu, môžete ich obnoviť. poškodené súbory xlsx ľahko a rýchlo.

Úvod autora:

Felix Hooker je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane oprava rar korupcie a softvérové ​​produkty na obnovenie sql. Pre viac informácií navštívte www.datanumen. S

Zdieľať teraz:

Komentáre sú uzavreté.