Propiedades de objeto de rango útiles para Excel VBA que todos deberían saber

Propiedades de objeto de rango útiles para Excel VBA que todos deberían saber

Un objeto Range tiene docenas de propiedades. Puede escribir programas VBA sin parar durante los próximos 12 meses y nunca usarlos todos. Aquí, obtiene una breve descripción general de algunas de las propiedades de rango VBA de Excel más utilizadas. Para obtener detalles completos, consulte el sistema de ayuda en el VBE. (Consulte estos recursos adicionales para obtener ayuda con Excel VBA ).

Algunas propiedades de Excel VBA Range son propiedades de solo lectura, lo que significa que su código puede ver sus valores pero no puede cambiarlos (“Mire, pero no toque”). Por ejemplo, cada objeto de rango de Excel VBA tiene una propiedad de dirección, que contiene la dirección del rango. Puede acceder a esta propiedad de solo lectura, pero no puede cambiarla, lo que tiene mucho sentido cuando lo piensa.

Por cierto, los ejemplos que siguen son típicamente declaraciones en lugar de procedimientos completos. Si desea probar alguno de estos (y debería hacerlo), cree un procedimiento Sub para hacerlo. Además, muchas de estas declaraciones de VBA funcionan correctamente solo si una hoja de trabajo es la hoja activa.

Excel VBA: la propiedad Value

La propiedad Value representa el valor contenido en una celda. Es una propiedad de lectura y escritura, por lo que su código VBA puede leer o cambiar el valor.

La siguiente declaración muestra un cuadro de mensaje que muestra el valor en la celda A1 en Sheet1:

MsgBox Worksheets ("Sheet1"). Range ("A1"). Value

Es lógico que pueda leer la propiedad Value solo para un objeto Range de una sola celda. Por ejemplo, la siguiente declaración genera un error:

MsgBox Worksheets ("Sheet1"). Range ("A1: C3"). Value

Sin embargo, puede cambiar la propiedad Value para un rango de cualquier tamaño. La siguiente declaración ingresa el número 123 en cada celda de un rango:

Hojas de trabajo ("Hoja1"). Rango ("A1: C3"). Valor = 123

El valor es la propiedad predeterminada para un objeto de rango de VBA de Excel. En otras palabras, si omite una propiedad para un rango, Excel usa su propiedad Value. Las siguientes declaraciones ingresan un valor de 75 en la celda A1 de la hoja de trabajo activa:

Rango ("A1"). Valor = 75
Rango ("A1") = 75

Excel VBA: la propiedad Text

La propiedad Text devuelve una cadena que representa el texto tal como se muestra en una celda: el valor formateado. La propiedad Text es de solo lectura. Suponga que la celda A1 contiene el valor 12,3 y está formateada para mostrar dos decimales y un signo de dólar ($ 12,30). La siguiente declaración muestra un cuadro de mensaje que contiene $ 12.30:

MsgBox Worksheets ("Sheet1"). Range ("A1"). Text

Pero la siguiente declaración muestra un cuadro de mensaje que contiene 12.3:

MsgBox Worksheets ("Sheet1"). Range ("A1"). Value

Si la celda contiene una fórmula, la propiedad Text devuelve el resultado de la fórmula. Si una celda contiene texto, la propiedad Text y la propiedad Value siempre devuelven lo mismo, porque el texto (a diferencia de un número) no puede formatearse para mostrarse de manera diferente.

Excel VBA: la propiedad Count

La propiedad Count devuelve el número de celdas de un rango. Cuenta todas las celdas, no solo las que no están en blanco. Count es una propiedad de solo lectura, tal como era de esperar. La siguiente declaración accede a la propiedad Count de un rango y muestra el resultado (9) en un cuadro de mensaje:

Rango de MsgBox ("A1: C3"). Recuento

Excel VBA: las propiedades de columna y fila

La propiedad Columna devuelve el número de columna de un rango de una sola celda. Su compinche, la propiedad Row, devuelve el número de fila de un rango de una sola celda. Ambas son propiedades de solo lectura. Por ejemplo, la siguiente declaración muestra 6 porque la celda F3 está en la sexta columna:

MsgBox Sheets ("Sheet1"). Range ("F3"). Column

La siguiente expresión muestra 3 porque la celda F3 está en la tercera fila:

MsgBox Sheets ("Sheet1"). Range ("F3"). Row

Si el objeto Rango de Excel VBA consta de más de una celda, la propiedad Columna devuelve el número de columna de la primera columna del rango y la propiedad Fila devuelve el número de fila de la primera fila del rango.

No confunda las propiedades Columna y Fila con las propiedades Columnas y Filas. Las propiedades de Columna y Fila devuelven un solo valor. Las propiedades Columns y Rows, por otro lado, devuelven un objeto Range. Qué diferencia hace una "s".

Excel VBA: la propiedad Dirección

Dirección, una propiedad de solo lectura, muestra la dirección de celda de un objeto Range como una referencia absoluta (un signo de dólar antes de la letra de la columna y antes del número de fila). La siguiente declaración muestra el cuadro de mensaje que se muestra a continuación:

Rango de MsgBox (celdas (1, 1), celdas (5, 5)). Dirección

Propiedades de objeto de rango útiles para Excel VBA que todos deberían saber

Este cuadro de mensaje muestra la propiedad Dirección de un rango de 5 por 5.

Excel VBA: la propiedad HasFormula

La propiedad HasFormula (que es de solo lectura) devuelve True si el rango de celda única contiene una fórmula. Devuelve False si la celda contiene algo que no sea una fórmula (o está vacía). Si el rango consta de más de una celda, VBA devuelve Verdadero solo si todas las celdas del rango contienen una fórmula o Falso si todas las celdas del rango no tienen una fórmula. La propiedad devuelve Nulo si el rango contiene una mezcla de fórmulas y no fórmulas. Nulo es una especie de tierra de nadie: la respuesta no es ni Verdadero ni Falso, y cualquier celda en el rango puede tener o no una fórmula.

Debe tener cuidado cuando trabaje con propiedades que pueden devolver Null. Más específicamente, el único tipo de datos que puede tratar con Null es Variant.

For example, assume that cell A1 contains a value and cell A2 contains a formula. The following statements generate an error because the range doesn’t consist of all formulas or all nonformulas:

Dim FormulaTest As Boolean
FormulaTest = Range("A1:A2").HasFormula

The Boolean data type can handle only True or False. Null causes Excel to complain and display an error message. To fix this type of situation, the best thing to do is make sure that the FormulaTest variable is declared as a Variant rather than as a Boolean. The following example uses VBA’s handy TypeName function (along with an If-Then-Else construct) to determine the data type of the FormulaTest variable. If the range has a mixture of formulas and nonformulas, the message box displays Mixed! Otherwise, it displays True or False.

Sub CheckForFormulas()
  Dim FormulaTest As Variant
  FormulaTest = Range("A1:A2").HasFormula
  If TypeName(FormulaTest) = "Null" Then
    MsgBox "Mixed!"
  Else
    MsgBox FormulaTest
  End If
End Sub

Excel VBA: The Font property

A property can return an object. The Font property of an Excel VBA Range object is another example of that concept at work. The Font property returns a Font object.

A Font object, as you may expect, has many accessible properties. To change some aspect of a range’s font, you must first access the range’s Font object and then manipulate the properties of that object. This may be confusing, but perhaps this example will help.

The following statement uses the Font property of the Range object to return a Font object. Then the Bold property of the Font object is set to True. In plain English, this statement makes the cell display in boldface:

Range("A1").Font.Bold = True

Truth is, you don’t really need to know that you’re working with a special Font object that’s contained in an Excel VBA Range object. As long as you use the proper syntax, it works just fine. Often, recording your actions with the macro recorder tells you everything you need to know about the proper syntax.

Excel VBA: The Interior property

Here’s yet another example of a property that returns an object. A Range object’s Interior property returns an Interior object (strange name, but that’s what it’s called). This type of object referencing works the same way as the Font property.

For example, the following statement changes the Color property of the Interior object contained in the Range object:

Range("A1").Interior.Color = 8421504

En otras palabras, esta declaración cambia el fondo de la celda a gris medio. ¿Que es eso? ¿No sabías que 8421504 es gris medio? Para obtener información sobre el maravilloso mundo del color de Excel, consulte la barra lateral cercana "Una cartilla de color rápida y sucia".

Excel VBA: la propiedad Formula

La propiedad Formula representa la fórmula en una celda. Esta es una propiedad de lectura y escritura, por lo que puede acceder a ella para ver la fórmula en una celda o insertar una fórmula en una celda. Por ejemplo, la siguiente declaración ingresa una fórmula SUM en la celda A13:

Rango ("A13"). Fórmula = "= SUMA (A1: A12)"

Observe que la fórmula es una cadena de texto y está entre comillas. También observe que la fórmula comienza con un signo igual, como lo hacen todas las fórmulas.

Si la fórmula en sí contiene comillas, las cosas se complican un poco. Diga que desea insertar esta fórmula usando VBA:

= SUMA (A1: A12) y "Tiendas"

Esta fórmula muestra un valor seguido de la palabra Tiendas . Para que esta fórmula sea aceptable, debe reemplazar todas las comillas en la fórmula con dos comillas. De lo contrario, VBA se confunde y afirma que hay un error de sintaxis (¡porque lo hay!). Entonces, aquí hay una declaración que ingresa una fórmula que contiene comillas:

Rango ("A13"). Fórmula = "= SUMA (A1: A12) &" "Almacena" ""

Por cierto, puede acceder a la propiedad Fórmula de una celda incluso si la celda no tiene una fórmula. Si una celda no tiene fórmula, la propiedad Fórmula devuelve lo mismo que su propiedad Valor.

Si necesita saber si una celda tiene una fórmula, use la propiedad HasFormula.

Tenga en cuenta que VBA "habla" inglés de EE. UU. Esto significa que para poner una fórmula en una celda, debe usar la sintaxis de EE. UU. Si usa una versión de Excel que no está en inglés, lea sobre la propiedad FormulaLocal en el sistema de ayuda.

Excel VBA: la propiedad NumberFormat

La propiedad NumberFormat representa el formato de número (expresado como una cadena de texto) del objeto Range. Esta es una propiedad de lectura-escritura, por lo que su código VBA puede examinar el formato del número o cambiarlo. La siguiente declaración cambia el formato numérico de la columna A a un porcentaje con dos lugares decimales:

Columnas ("A: A"). NumberFormat = "0.00%"

Siga estos pasos para ver una lista de otros formatos numéricos (mejor aún, encienda la grabadora de macros mientras hace esto):

Activar una hoja de trabajo.

Presione Ctrl + 1 para acceder al cuadro de diálogo Formato de celdas.

Haga clic en la pestaña Número.

Seleccione la categoría Personalizado para ver y aplicar algunas cadenas de formato de número adicionales.


Cómo programar una reunión de Skype

Cómo programar una reunión de Skype

Aprenda a programar reuniones efectivas en Skype Empresarial desde Outlook o la aplicación de Skype. Siga nuestros sencillos pasos para una mejor colaboración.

Cómo usar Pegado especial en Excel 2016

Cómo usar Pegado especial en Excel 2016

Aprende a usar la función de Pegado Especial en Excel 2016 para optimizar la forma en que insertas datos en tus hojas de cálculo. Controla qué información se pega y realiza operaciones matemáticas simples con facilidad.

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Funciones de Excel para trabajar con números hexadecimales, octales, decimales y binarios

Descubre las funciones de Excel para convertir entre binario, octal, decimal y hexadecimal con esta tabla informativa y consejos útiles para optimizar tu trabajo.

Instalar y activar un complemento de Power Query de Excel

Instalar y activar un complemento de Power Query de Excel

Completa guía sobre cómo instalar y activar el complemento de Power Query en Excel 2010 y 2013, y su uso en Excel 2016. Aprende a gestionar datos de manera efectiva en Excel.

Access 2019: Cómo editar y modificar una base de datos de Access

Access 2019: Cómo editar y modificar una base de datos de Access

Aprende a modificar y editar bases de datos en Access 2019, incluyendo cómo nombrar campos, agregar y eliminar campos, y definir tipos de datos. ¡Optimiza tu trabajo con Access!

Cómo usar el comando Ir a en Word 2016

Cómo usar el comando Ir a en Word 2016

El comando Ir a en Word 2016 es una herramienta poderosa para navegar rápidamente a una página específica o a elementos dentro del documento. Aprende a optimizar tu flujo de trabajo con este práctico comando.

Cómo resaltar fechas de fin de semana en Excel

Cómo resaltar fechas de fin de semana en Excel

Aprende cómo resaltar fechas de fin de semana en Excel utilizando formato condicional para mejorar la gestión de tus datos de programación.

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Cómo insertar un enlace para enviar un correo electrónico en una hoja de cálculo de Excel 2010

Aprenda a insertar un hipervínculo "mailto" en Excel 2010 para crear correos electrónicos de manera simple y eficiente.

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Cómo usar las opciones de pegado y Pegado especial en Word 2007

Aprenda a utilizar las opciones de pegado y Pegado especial en Word 2007 para manejar eficazmente bloques de texto. Optimizando su formato y presentación.

Cómo modificar un gráfico SmartArt en PowerPoint

Cómo modificar un gráfico SmartArt en PowerPoint

Descubre cómo modificar un gráfico SmartArt en PowerPoint incluyendo cambios de diseño, estructura y texto. Mejora tus presentaciones con estos consejos SEO.