Ibland är det användbart att läsa ett kalkylblad rad för rad och selektivt ta data från det. Ett exempel nedan visar hur man gör detta.
Artikeln förutsätter att läsaren har utvecklarbandet och är bekant med VBA Editor. Om inte, vänligen googla "Excel Developer Tab" eller "Excel Code Window".
Följande exempel manipulerar data genom att undersöka varje rad e-postadresser och sammanfoga dem till en enda adressrad. Medan Excel har inbyggda transponeringsfunktioner har vi för avsikt att med vår kod utesluta vissa specifika adressater och lägga till avgränsare.
Vår ansökan behöver bara ett ark. Kopiera informationen nedan till cell A1:
| E-postadress |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| Marymontrary@bedlam.org.uk |
Placera en knapp på formuläret för att starta koden.
Låt oss anta att det finns hundratals av dessa e-postmeddelanden istället för bara fem; vi vill skicka var och en samma meddelande och samma kopia av vårt manus. Det finns flera sätt att göra detta, most särskilt genom att ringa e-postadressen, som Outlook, från VBA-kod. Denna övning tjänar dock två syften:
- Visa hur man enkelt går igenom ett kalkylblad;
- Markera Excels förmåga att undersöka varje rad och agera på den.
VBA-koden
VBA-koden sammanfogar alla adresser och infogar en semikolon efter varje, så att de kan klistras in på en gång i e-postadressens adressatfält. Du kommer att notera från koden att det, efter att ha granskat raderna, utesluter franska.
Sätt i en modul och ange följande:
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 håller den aktiva cellen i kolumn A, bara raderna går vidare. För att referera till information någon annanstans i rad använder vi:
Variable = Activecell.offset(offset rows, offset columns)
För att få ett värde från kolumn B i den aktiva raden, till exempel, skulle koden läsa Activecell.offset (0, 1). Att få A2: s värde när vi är i A3 skulle läsa Activecell.offset (-1, 0).
För att testa din kod, tilldela knappen till makrot "Main".
Vissa Internet-tjänsteleverantörer kan som en försiktighetsåtgärd mot skräppost begränsa antalet e-postmeddelanden du kan skicka på en gång. Om du använder den här metoden är det förmodligen bäst att kolla med dem innan du skickar hundratals e-postmeddelanden på en gång.
Hantering av Excel-filkorruption

Författarintroduktion:
Felix Hooker är en dataåterställningsexpert i DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive reparation rar korruption och mjukvaruprodukter för SQL-återställning. För mer information besök www.datanumen.com
