Cómo recorrer su hoja de trabajo de Excel con VBA

Comparte ahora:

A veces es útil leer una hoja de trabajo línea por línea y tomar datos de ella de manera selectiva. Un ejemplo a continuación muestra cómo hacer esto.

El artículo asume que el lector muestra la cinta Desarrollador y está familiarizado con el Editor de VBA. De lo contrario, busque en Google "Pestaña de desarrollador de Excel" o "Ventana de código de Excel".

El siguiente ejemplo manipula los datos examinando cada fila de direcciones de correo electrónico y concateándolas en una sola línea de dirección. Si bien Excel tiene funciones de transposición integradas, pretendemos con nuestro código excluir algunos destinatarios específicos y agregar delimitadores.

Nuestra aplicación necesita una sola hoja. Copie la siguiente información en la celda A1:

Correo electrónico
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

Coloque un botón en el formulario para iniciar el código.Coloque un botón en el formulario para iniciar el código

Supongamos que hay cientos de estos correos electrónicos en lugar de solo cinco; queremos enviarles a todos el mismo mensaje y la misma copia de nuestro guion. Hay varias maneras de hacerlo, sobre todo llamando al programa de correo electrónico, como Outlook, desde código VBA. Sin embargo, este ejercicio tiene dos propósitos:

  • Muestre cómo recorrer fácilmente una hoja de trabajo;
  • Resalte la capacidad de Excel para examinar cada fila y actuar en consecuencia.

El código VBA

El código de VBA concatenará todas las direcciones, insertando un punto y coma después de cada una, para que se puedan pegar de una sola vez en el campo del destinatario del correo electrónico. Observará en el código que, después de examinar las filas, excluirá las francesas.

Inserte un módulo e ingrese lo siguiente:

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

El código mantiene la celda activa en la columna A, solo las filas avanzan. Para hacer referencia a información en otra parte de una fila, usaríamos:

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

Para obtener un valor de la columna B en la fila activa, por ejemplo, el código leería Desplazamiento de celda activa (0, 1). Para obtener el valor de A2 cuando estamos en A3 leería Desplazamiento de celda activa (-1, 0).

Para probar su código, asigne el botón a la macro "Principal".

Algunos proveedores de servicios de Internet, como medida de precaución contra el correo no deseado, pueden limitar la cantidad de correos electrónicos que puede enviar a la vez. Si usa este método, probablemente sea mejor consultar con ellos antes de enviar cientos de correos electrónicos de una vez.

Manejo de la corrupción de archivos de Excel

Corrupción de archivos de ExcelDe vez en cuando nos encontramos con libros de trabajo dañados hasta el punto de que Excel no puede recuperarlos. Esto es un desastre para la mayoría de los usuarios de Excel, incluidos los expertos. Sin embargo, si tiene a mano una herramienta de recuperación eficaz, puede restaurarlos. archivos xlsx dañados fácil y rápidamente.

Introducción del autor:

Felix Hooker es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparación rar corrupción y productos de software de recuperación de sql. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.