Hogyan lépkedhet át az Excel munkalapon VBA segítségével

Oszd meg most:

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

Excel fájl korrupcióIdőről időre találkozunk a munkafüzetek olyan mértékű sérülésével, hogy maga az Excel sem tudja helyreállítani azokat. Ez katasztrófa a legtöbb Excel-felhasználó számára, beleértve a szakértőket is. Ha azonban van kéznél egy hatékony helyreállító eszköz, akkor visszaállíthatja a... sérült xlsx fájlok könnyen és gyorsan.

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

Oszd meg most:

Hozzászólások lezárva.