Jak przechodzić w pętli przez arkusz programu Excel za pomocą VBA

Podziel się teraz:

Czasami przydatne jest czytanie arkusza wiersz po wierszu i selektywne pobieranie z niego danych. Poniższy przykład pokazuje, jak to zrobić.

W artykule założono, że czytelnik ma wyświetloną wstążkę programisty i zna edytor VBA. Jeśli nie, skorzystaj z Google „Excel Developer Tab” lub „Excel Code Window”.

Poniższy przykład manipuluje danymi, badając każdy wiersz adresów e-mail i łącząc je w jednym wierszu adresu. Chociaż program Excel ma wbudowane funkcje transpozycji, zamierzamy w naszym kodzie wykluczyć niektórych określonych adresatów i dodać ograniczniki.

Nasza aplikacja potrzebuje tylko jednego arkusza. Skopiuj poniższe informacje do komórki A1:

Adres e-mail
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
Marymontrary@bedlam.org.uk

Umieść przycisk na formularzu, aby uruchomić kod.Umieść przycisk na formularzu, aby uruchomić kod

Załóżmy, że są setki takich e-maili, a nie tylko pięć; chcemy wysłać każdemu tę samą wiadomość i tę samą kopię naszego scenariusza. Można to zrobić na kilka sposobów, m. Inost zwłaszcza dzwoniąc do poczty e-mail, takiej jak Outlook, z kodu VBA. Jednak to ćwiczenie służy dwóm celom:

  • Pokaż, jak łatwo przechodzić między arkuszami;
  • Podkreśl zdolność programu Excel do sprawdzania każdego wiersza i wykonywania na nim działań.

Kod VBA

Kod VBA połączy wszystkie adresy, wstawiając średnik po każdym, tak aby można je było wkleić za jednym razem w polu adresata wiadomości e-mail. Zauważysz z kodu, że po zbadaniu wierszy wykluczy francuskie.

Wstaw moduł i wprowadź następujące informacje:

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

Kod utrzymuje aktywną komórkę w kolumnie A, tylko wiersze przesuwają się dalej. Aby odwołać się do informacji w innym miejscu z rzędu, użylibyśmy:

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

Na przykład, aby uzyskać wartość z kolumny B w aktywnym wierszu, kod powinien przeczytać Activecell.offset (0, 1). Aby uzyskać wartość A2, gdy jesteśmy w A3, to znaczyłoby Activecell.offset (-1, 0).

Aby przetestować swój kod, przypisz przycisk do makra „Main”.

Niektórzy dostawcy usług internetowych, w celu ochrony przed spamem, mogą ograniczyć liczbę wiadomości e-mail, które możesz wysłać na raz. Jeśli korzystasz z tej metody, prawdopodobnie najlepiej skonsultować się z nimi przed wysłaniem setek e-maili za jednym razem.

Postępowanie z uszkodzeniem pliku Excel

Uszkodzenie pliku ExcelOd czasu do czasu napotykamy uszkodzenie skoroszytów do tego stopnia, że ​​sam Excel nie może ich odzyskać. To katastrofa dla m. Inost Użytkownicy programu Excel, w tym eksperci. Jeśli jednak masz pod ręką skuteczne narzędzie do odzyskiwania, możesz je przywrócić uszkodzone pliki xlsx łatwo i szybko.

Wprowadzenie autora:

Felix Hooker jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym naprawa rar korupcja i oprogramowanie do odzyskiwania sql. po więcej informacji odwiedź www.datanumen.com

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.