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.


Hoja inteligente 9.1.1

Hoja inteligente 9.1.1

Smartsheet es una plataforma de trabajo dinámica que le permite gestionar proyectos, crear flujos de trabajo y colaborar con su equipo.

Compartirpunto

Compartirpunto

SharePoint es un sistema de colaboración basado en web que utiliza una variedad de aplicaciones de flujo de trabajo, bases de datos de "listas" y otros componentes web, así como funciones de seguridad para dar control a los grupos empresariales que trabajan juntos.

Calendario perpetuo 1.0.38/1.0.36

Calendario perpetuo 1.0.38/1.0.36

Van Nien Calendar es una aplicación de visualización de calendario en su teléfono, que le ayuda a ver rápidamente la fecha lunisolar en su teléfono, organizando así su importante trabajo.

Outlook 2021

Outlook 2021

Microsoft Outlook es una aplicación empresarial y de productividad desarrollada por Microsoft Corporation.

Haga clic arriba

Haga clic arriba

ClickUp es una de las plataformas de productividad mejor calificadas para cualquier empresa. Grandes empresas como Google, Booking.com, San Diego Padres y Uber utilizan ClickUp para aumentar la productividad en el lugar de trabajo.

Visor de PDF-XChange 2.5.322.10

Visor de PDF-XChange 2.5.322.10

PDF se ha convertido en un formato de uso común para leer, crear y enviar documentos de texto. A su vez, se ha producido un aumento en el número de programas utilizados para este tipo de documentación. PDF-XChange Viewer se encuentra entre un número creciente de visores de PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice ofrece un conjunto completo de aplicaciones de Office que rivalizan con Microsoft 365, especialmente en Excel, PowerPoint y Word. Le permite gestionar sus proyectos de forma más eficaz y admite varios formatos de archivo.

Descargar iTaxviewer 1.8.7

Descargar iTaxviewer 1.8.7

El software iTaxViewer es el software de lectura de archivos XML más popular en la actualidad. Este software es una aplicación de lectura de declaraciones electrónicas de impuestos en formato XML de la Dirección General de Tributación.

Lector de PDF Nitro

Lector de PDF Nitro

Nitro PDF Reader es un práctico editor de PDF que cubre todas las tareas básicas que la mayoría de las personas realizan todos los días con documentos PDF.

Lector Foxit 12

Lector Foxit 12

Foxit Reader es principalmente un lector de PDF y también le permite crear archivos PDF, firmarlos, editarlos y agregar anotaciones. Funciona en sistemas operativos, existen complementos para varios programas del paquete Microsoft Office.