Joskus on hyödyllistä lukea laskentataulukko rivi riviltä ja ottaa siitä valikoivasti tietoja. Alla oleva esimerkki näyttää, kuinka tämä tehdään.
Artikkelissa oletetaan, että lukijalla on kehittäjänauha ja että hän tuntee VBA-editorin. Jos ei, ota Googlen “Excel Developer -välilehti” tai “Excel Code Window”.
Seuraava esimerkki käsittelee tietoja tutkimalla jokaisen sähköpostiosoitteen rivin ja yhdistämällä ne yhdeksi osoiteriville. Vaikka Excelissä on sisäänrakennetut Transpose-toiminnot, aiomme koodimme avulla sulkea pois tietyt vastaanottajat ja lisätä erottimia.
Hakemuksemme tarvitsee vain yhden arkin. Kopioi alla olevat tiedot soluun A1:
| Sähköpostiosoite |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Aseta painike lomakkeelle käynnistääksesi koodin.
Oletetaan, että tällaisia sähköposteja on satoja viiden sijaan; haluamme lähettää jokaiselle saman viestin ja saman kopion käsikirjoituksestamme. Tähän on useita tapoja, joista merkittävin on kutsua sähköpostiohjelmaa, kuten Outlookia, VBA-koodista. Tällä harjoituksella on kuitenkin kaksi tarkoitusta:
- Näytä kuinka selata laskentataulukkoa helposti;
- Korosta Excelin kykyä tarkastella jokaista riviä ja toimia sen mukaan.
VBA-koodi
VBA-koodi yhdistää kaikki osoitteet lisäämällä puolipisteen jokaisen perään, jotta ne voidaan liittää yhdellä kertaa sähköpostin vastaanottajakenttään. Huomaat koodista, että rivit tutkittuasi se jättää ranskalaiset pois.
Aseta moduuli ja kirjoita seuraava:
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
Koodi säilyttää aktiivisen solun sarakkeessa A, vain rivit siirtyvät eteenpäin. Jos haluat viitata tietoihin muualla peräkkäin, käytämme:
Variable = Activecell.offset(offset rows, offset columns)
Esimerkiksi, jos haluat saada arvon aktiivisen rivin sarakkeesta B, koodi lukisi Activecell.offset(0, 1). Jos haluat saada A2:n arvon, kun olemme A3:ssa, lukisin Activecell.offset(-1, 0).
Testaa koodia määrittämällä painike makrolle "Main".
Jotkut Internet-palveluntarjoajat saattavat rajoittaa kerralla lähetettävien sähköpostien määrää roskapostin estämiseksi. Jos käytät tätä menetelmää, on luultavasti parasta tarkistaa heiltä ennen satojen sähköpostien lähettämistä kerralla.
Excel-tiedostojen korruption käsittely

Tekijän esittely:
Felix Hooker on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien korjaus rar korruptio ja sql-palautusohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com
