Noen ganger er det nyttig å lese et regneark linje for linje og selektivt ta data fra det. Et eksempel nedenfor viser hvordan du gjør dette.
Artikkelen forutsetter at leseren har utviklerbåndet vist og er kjent med VBA Editor. Hvis ikke, vennligst Google "Excel Developer Tab" eller "Excel Code Window".
Følgende eksempel manipulerer dataene ved å undersøke hver rad med e-postadresser og sette dem sammen til en enkelt adresselinje. Mens Excel har innebygde Transpose-funksjoner, har vi til hensikt med koden vår å ekskludere noen spesifikke adresser og legge til skilletegn.
Vår søknad trenger kun ett ark. Kopier informasjonen nedenfor til celle A1:
| Epostadresse |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Plasser en knapp på skjemaet for å starte koden.
La oss anta at det finnes hundrevis av disse e-postene i stedet for bare fem; vi ønsker å sende den samme meldingen og den samme kopien av manuset vårt til hver av dem. Det finnes flere måter å gjøre dette på, spesielt ved å kalle e-postprogrammet, som Outlook, fra VBA-kode. Denne øvelsen tjener imidlertid to formål:
- Vis hvordan du enkelt sykler gjennom et regneark;
- Fremhev Excels evne til å undersøke hver rad, og handle på den.
VBA-koden
VBA-koden vil sette sammen alle adressene, og sette inn et semikolon etter hver, slik at de kan limes inn på én gang i e-postens adressatfelt. Du vil merke fra koden at etter å ha undersøkt radene, vil den ekskludere franske.
Sett inn en modul, og skriv inn følgende:
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
Koden holder den aktive cellen i kolonne A, bare radene går videre. For å referere til informasjon andre steder i en rad, bruker vi:
Variable = Activecell.offset(offset rows, offset columns)
For å få en verdi fra kolonne B i den aktive raden, for eksempel, ville koden lese Activecell.offset(0, 1). For å få A2s verdi når vi er i A3 ville lese Activecell.offset(-1, 0).
For å teste koden din, tilordne knappen til makroen "Main".
Noen Internett-leverandører kan begrense antallet e-poster du kan sende samtidig, som en anti-spam forholdsregel. Hvis du bruker denne metoden, er det sannsynligvis best å sjekke med dem før du sender hundrevis av e-poster på en gang.
Håndtering av Excel-filkorrupsjon

Forfatterintroduksjon:
Felix Hooker er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparasjon rar korrupsjon og sql-programvareprodukter. For mer informasjon besøk www.datanumen. Med
