Como percorrer sua planilha do Excel com VBA

Compartilhe agora:

Às vezes, é útil ler uma planilha linha por linha e obter dados dela seletivamente. Um exemplo abaixo mostra como fazer isso.

O artigo pressupõe que o leitor tenha a faixa Desenvolvedor exibida e esteja familiarizado com o Editor VBA. Se não, por favor, Google “Excel Developer Tab” ou “Excel Code Window”.

O exemplo a seguir manipula os dados examinando cada linha de endereços de e-mail e concatenando-os em uma única linha de endereço. Embora o Excel tenha funções de transposição incorporadas, pretendemos com nosso código excluir alguns endereços específicos e adicionar delimitadores.

Nosso aplicativo precisa de apenas uma folha. Copie as informações abaixo para a célula A1:

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

Coloque um botão no formulário para iniciar o código.Coloque um botão no formulário para iniciar o código

Vamos supor que existam centenas desses e-mails em vez de apenas cinco; queremos enviar a mesma mensagem e a mesma cópia do nosso roteiro para cada um deles. Existem várias maneiras de fazer isso, principalmente chamando o programa de e-mail, como o Outlook, a partir de um código VBA. No entanto, este exercício tem dois objetivos:

  • Mostre como percorrer facilmente uma planilha;
  • Destaque a capacidade do Excel de examinar cada linha e agir de acordo com ela.

O Código VBA

O código VBA irá concatenar todos os endereços, inserindo um ponto e vírgula após cada um, para que possam ser colados de uma só vez no campo de destinatário do e-mail. Você notará no código que, após examinar as linhas, ele excluirá as francesas.

Insira um módulo e digite o seguinte:

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

O código mantém a célula ativa na coluna A, apenas as linhas se movem. Para fazer referência a informações em outro lugar em uma linha, usaríamos:

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

Para obter um valor da coluna B na linha ativa, por exemplo, o código seria lido Célula ativa.offset(0, 1). Para obter o valor de A2 quando estamos em A3 leríamos Activecell.offset(-1, 0).

Para testar seu código, atribua o botão à macro “Principal”.

Alguns provedores de serviços de Internet, como precaução anti-spam, podem limitar o número de e-mails que você pode enviar de uma só vez. Se você usar esse método, provavelmente é melhor verificar com eles antes de enviar centenas de e-mails de uma só vez.

Lidando com a corrupção de arquivos do Excel

Corrupção de arquivo do ExcelDe tempos em tempos, nos deparamos com a corrupção de planilhas a tal ponto que o próprio Excel não consegue recuperá-las. Isso é um desastre para a maioria dos usuários do Excel, inclusive os especialistas. No entanto, se você tiver uma ferramenta de recuperação eficaz à mão, poderá restaurá-las. arquivos xlsx danificados facilmente e rapidamente.

Introdução do autor:

Felix Hooker é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar rar corrupção e produtos de software de recuperação SQL. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.