Nogle gange er det nyttigt at læse et regneark linje for linje og selektivt tage data fra det. Et eksempel nedenfor viser, hvordan du gør dette.
Artiklen antager, at læseren har udviklerbåndet vist og er bekendt med VBA Editor. Hvis ikke, bedes du Google “fanen Excel-udvikler” eller “vinduet Excel-kode”.
Følgende eksempel manipulerer dataene ved at undersøge hver række af e-mail-adresser og sammenkæde dem til en enkelt adresselinje. Mens Excel har indbyggede transponeringsfunktioner, har vi til hensigt med vores kode at udelukke nogle specifikke adressater og tilføje afgrænsere.
Vores ansøgning har kun brug for et ark. Kopier nedenstående oplysninger til celle A1:
| E-mail adresse |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Placer en knap på formularen for at starte koden.
Lad os antage, at der er hundredvis af disse e-mails i stedet for kun fem; vi vil sende hver den samme besked og den samme kopi af vores manuskript. Der er flere måder at gøre dette på, især ved at kalde e-mail-programmet, som f.eks. Outlook, fra VBA-kode. Denne øvelse tjener dog to formål:
- Vis, hvordan man cykler let gennem et regneark;
- Fremhæv Excels evne til at undersøge hver række og handle på den.
VBA-koden
VBA-koden sammenkæder alle adresserne og indsætter en semikolon efter hver, så de kan indsættes på én gang i mailens adressatfelt. Du vil bemærke fra koden, at det efter at have undersøgt rækkerne udelukker franske.
Indsæt et modul, og indtast 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 celle i kolonne A, kun rækkerne går videre. For at henvise til oplysninger andetsteds i træk bruger vi:
Variable = Activecell.offset(offset rows, offset columns)
For at få en værdi fra kolonne B i den aktive række, ville koden for eksempel læses Activecell.offset (0, 1). At få A2s værdi, når vi er i A3, ville læse Activecell.offset (-1, 0).
For at teste din kode, tildel knappen til makroen "Main".
Nogle internetudbydere kan som en sikkerhedsforanstaltning mod spam begrænse antallet af e-mails, du kan sende på én gang. Hvis du bruger denne metode, er det sandsynligvis bedst at tjekke med dem, inden du sender hundreder af e-mails på én gang.
Håndtering af Excel-filkorruption

Forfatter Introduktion:
Felix Hooker er en datagendannelsesekspert i DataNumen, Inc., som er verdens førende inden for datagendannelsesteknologier, herunder reparere rar korruption og SQL-genopretningssoftwareprodukter. For mere information besøg www.datanumen.com
