Come scorrere il foglio di lavoro di Excel con VBA

Condividi ora:

A volte è utile leggere un foglio di lavoro riga per riga e prendere selettivamente i dati da esso. Un esempio di seguito mostra come eseguire questa operazione.

L'articolo presuppone che il lettore abbia visualizzato il nastro Developer e abbia familiarità con l'editor VBA. In caso contrario, Google "Excel Developer Tab" o "Excel Code Window".

L'esempio seguente manipola i dati esaminando ogni riga di indirizzi e-mail e concatenandoli in un'unica riga di indirizzo. Sebbene Excel abbia funzioni Transpose incorporate, intendiamo con il nostro codice escludere alcuni destinatari specifici e aggiungere delimitatori.

La nostra applicazione necessita di un solo foglio. Copia le informazioni di seguito nella cella A1:

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

Posiziona un pulsante sul modulo per dare il via al codice.Posiziona un pulsante sul modulo per dare il via al codice

Supponiamo che ci siano centinaia di queste email invece di solo cinque; vogliamo inviare a ciascuna lo stesso messaggio e la stessa copia della nostra sceneggiatura. Ci sono diversi modi per farlo, in particolare richiamando il programma di posta elettronica, come Outlook, tramite codice VBA. Tuttavia, questo esercizio ha due scopi:

  • Mostra come scorrere facilmente un foglio di lavoro;
  • Evidenzia la capacità di Excel di esaminare ogni riga e agire di conseguenza.

Il codice VBA

Il codice VBA concatenerà tutti gli indirizzi, inserendo un punto e virgola dopo ciascuno, in modo che possano essere incollati in un colpo solo nel campo del destinatario dell'email. Noterai dal codice che, dopo aver esaminato le righe, escluderà quelle francesi.

Inserisci un modulo e inserisci quanto segue:

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

Il codice mantiene la cella attiva nella colonna A, solo le righe vanno avanti. Per fare riferimento alle informazioni altrove di seguito, useremmo:

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

Per ottenere un valore dalla colonna B nella riga attiva, ad esempio, il codice dovrebbe leggere Compensazione cella attiva(0, 1). Per ottenere il valore di A2 quando siamo in A3 si leggerebbe Offset cella attiva(-1, 0).

Per testare il tuo codice, assegna il pulsante alla macro "Principale".

Alcuni provider di servizi Internet, come precauzione anti-spam, potrebbero limitare il numero di email che puoi inviare contemporaneamente. Se utilizzi questo metodo, probabilmente è meglio verificare con loro prima di inviare centinaia di e-mail in una volta sola.

Gestione della corruzione dei file Excel

Corruzione del file ExcelDi tanto in tanto ci imbattiamo in cartelle di lavoro danneggiate a tal punto che Excel stesso non riesce a recuperarle. Questo è un disastro per la maggior parte degli utenti di Excel, esperti compresi. Tuttavia, se si dispone di uno strumento di recupero efficace, è possibile ripristinarle. file xlsx danneggiati facilmente e rapidamente.

Introduzione dell'autore:

Felix Hooker è un esperto di recupero dati in DataNumen, Inc., che è il leader mondiale nelle tecnologie di recupero dati, tra cui riparazione rar corruzione e prodotti software di recupero SQL. Per maggiori informazioni visita www.datanumen.com

Condividi ora:

I commenti sono chiusi.