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

Ú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
