Hoe u uw Excel-werkblad doorloopt met VBA

Het is soms handig om een ​​werkblad regel voor regel te lezen en er selectief gegevens uit te halen. In een voorbeeld hieronder ziet u hoe u dit doet.

In het artikel wordt ervan uitgegaan dat de lezer het ontwikkelaarslint heeft weergegeven en bekend is met de VBA-editor. Als dit niet het geval is, gebruik dan Google "Excel Developer Tab" of "Excel Code Window".

In het volgende voorbeeld worden de gegevens gemanipuleerd door elke rij e-mailadressen te onderzoeken en ze samen te voegen tot één adresregel. Hoewel Excel ingebouwde Transpose-functies heeft, willen we met onze code enkele specifieke geadresseerden uitsluiten en scheidingstekens toevoegen.

Onze applicatie heeft slechts één blad nodig. Kopieer onderstaande informatie naar cel A1:

E-mailadres
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

Plaats een knop op het formulier om de code te activeren.Plaats een knop op het formulier om de code te starten

Laten we aannemen dat er honderden van deze e-mails zijn in plaats van slechts vijf; we willen ze allemaal hetzelfde bericht en dezelfde kopie van ons scenario sturen. Er zijn verschillende manieren om dit te doen, met name door de e-mailclient, zoals Outlook, vanuit VBA-code aan te roepen. Deze oefening dient echter twee doelen:

  • Laat zien hoe je eenvoudig door een werkblad bladert;
  • Markeer het vermogen van Excel om elke rij te onderzoeken en ernaar te handelen.

De VBA-code

De VBA-code zal alle adressen samenvoegen en achter elk een puntkomma invoegen, zodat ze in één keer in het geadresseerdeveld van de e-mail kunnen worden geplakt. U zult aan de code zien dat, na onderzoek van de rijen, Franse rijen worden uitgesloten.

Voeg een module in en voer het volgende in:

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

De code houdt de actieve cel in kolom A, alleen de rijen gaan verder. Om elders op een rij naar informatie te verwijzen, gebruiken we:

Variable = Activecell.offset(offset rows, offset columns)

Om bijvoorbeeld een waarde uit kolom B in de actieve rij te krijgen, zou de code lezen Actievecel.offset(0, 1). Om de waarde van A2 te krijgen als we in A3 zitten, zou lezen Actievecel.offset(-1, 0).

Om uw code te testen, wijst u de knop toe aan de macro "Hoofd".

Sommige internetproviders kunnen, als voorzorgsmaatregel tegen spam, het aantal e-mails beperken dat u tegelijk kunt verzenden. Als u deze methode gebruikt, is het waarschijnlijk het beste om contact met hen op te nemen voordat u honderden e-mails in één keer verzendt.

Omgaan met corruptie van Excel-bestanden

Corruptie van Excel-bestandenHet komt wel eens voor dat werkmappen zo beschadigd raken dat Excel ze zelf niet meer kan herstellen. Dit is een ramp voor de meeste Excel-gebruikers, ook voor de experts. Maar als u een effectief herstelprogramma bij de hand hebt, kunt u ze toch herstellen. beschadigde xlsx-bestanden gemakkelijk en snel.

Auteur Introductie:

Felix Hooker is een expert op het gebied van gegevensherstel DataNumen, Inc., de wereldleider in technologieën voor gegevensherstel, waaronder reparatie rar corruptie en sql-herstelsoftwareproducten. Voor meer informatie bezoek www.datanumen.com

Reacties zijn gesloten.