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

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
