Hasznos néha soronként elolvasni egy munkalapot, és szelektíven venni belőle adatokat. Az alábbi példa bemutatja, hogyan kell ezt megtenni.
A cikk feltételezi, hogy az olvasó megjeleníti a Fejlesztői szalagot, és ismeri a VBA-szerkesztőt. Ha nem, használja a Google „Excel Developer Tab” vagy az „Excel Code Window” szolgáltatását.
A következő példa úgy manipulálja az adatokat, hogy megvizsgálja az e-mail címek minden sorát, és egyetlen címsorba fűzi össze őket. Míg az Excel beépített Transpone funkciókkal rendelkezik, a kódunkkal szeretnénk kizárni bizonyos címzetteket, és határolókat hozzáadni.
Pályázatunknak csak egy lapra van szüksége. Másolja az alábbi információkat az A1 cellába:
| E-mail cím |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Helyezzen egy gombot az űrlapra a kód elindításához.
Tegyük fel, hogy több száz ilyen e-mail van, nem csak öt; mindegyikre ugyanazt az üzenetet és a forgatókönyvünk ugyanazon példányát szeretnénk elküldeni. Ennek többféle módja is van, a legismertebb az e-mail küldő, például az Outlook, VBA-kódból történő meghívása. Ez a gyakorlat azonban két célt szolgál:
- Mutassa meg, hogyan lehet könnyedén végigmenni egy munkalapon;
- Emelje ki az Excel azon képességét, hogy megvizsgálja az egyes sorokat, és cselekedjen.
A VBA kód
A VBA-kód összefűzi az összes címet, pontosvesszőt szúrva mindegyik után, így azok egy mozdulattal beilleszthetők az e-mail címzett mezőjébe. A kódból megjegyzi, hogy a sorok vizsgálata után a franciákat kizárja.
Helyezzen be egy modult, és írja be a következőket:
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
A kód az A oszlopban tartja az aktív cellát, csak a sorok haladnak tovább. Ha egy sorban máshol hivatkozunk az információkra, a következőket használjuk:
Variable = Activecell.offset(offset rows, offset columns)
Ha például az aktív sor B oszlopából szeretne értéket kapni, a kód beolvasható Activecell.offset(0, 1). Az A2 értékét akkor kapjuk meg, amikor A3-ban vagyunk Activecell.offset(-1, 0).
A kód teszteléséhez rendelje hozzá a gombot a „Main” makróhoz.
Egyes internetszolgáltatók levélszemét-ellenes óvintézkedésként korlátozhatják az egyszerre küldhető e-mailek számát. Ha ezt a módszert használja, valószínűleg a legjobb, ha megkérdezi őket, mielőtt több száz e-mailt küldene egyszerre.
Az Excel fájlok sérülésének kezelése

Szerző Bevezetés:
Felix Hooker adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve javítás rar korrupció és SQL helyreállítási szoftvertermékek. További információért látogasson el www.datanumen.com
