Reference Range Flashcards

(23 cards)

1
Q

¿Cuál es el atajo de teclado para abrir el Editor de Visual Basic (VBE) en Excel?

A

Alt + F11

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

En VBA, ¿cuál es la diferencia fundamental entre ActiveCell y Selection?

A) ActiveCell es el rango completo seleccionado, Selection es la primera celda de ese rango.
B) No hay diferencia, son intercambiables.
C) ActiveCell es una única celda dentro de la selección actual (usualmente la de inicio), mientras que Selection se refiere al rango completo que está resaltado.
D) ActiveCell solo funciona si se selecciona una celda, Selection funciona con múltiples celdas.

A

C) ActiveCell es una única celda dentro de la selección actual (usualmente la de inicio), mientras que Selection se refiere al rango completo que está resaltado.

Explicación: Si seleccionas el rango A1:C4 empezando desde A1, la ActiveCell será A1, pero la Selection será todo el rango A1:C4.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuál es la sintaxis en VBA para escribir el texto “Hola” en la celda B2?

A

Range(“B2”).Value = “Hola”

Explicación: También se puede usar Cells(2, 2).Value = “Hola”. La propiedad .Value es la predeterminada y puede omitirse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cómo se referencia un rango contiguo de celdas, como de A1 a C5, en VBA?

A

Range(“A1:C5”)

Explicación: Se utiliza el signo de dos puntos (:) dentro de las comillas para denotar un rango continuo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cómo se referencia un rango no contiguo, que incluye solo las celdas A1, B3 y F5?

A

Range(“A1,B3,F5”)

Explicación: Se utiliza la coma (,) dentro de las comillas para separar celdas o rangos no contiguos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué resultado produce el código Range(“A4”, “C4”).Value = “Texto”?

A) Escribe “Texto” en las celdas A4, B4 y C4.
B) Produce un error de sintaxis.
C) Escribe “Texto” solo en las celdas A4 y C4.
D) Escribe “Texto” en la celda A4 y en la celda C4, y también en la B4.

A

A) Escribe “Texto” en las celdas A4, B4 y C4.

Explicación: Usar una coma para separar dos cadenas de texto dentro de la propiedad Range crea un rango contiguo entre ambas referencias. Es equivalente a Range(“A4:C4”).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Para qué se utiliza el ampersand (&) al construir una referencia de rango en VBA, como en Range(“A” & fila).Value?

A

Se utiliza para concatenar o unir una cadena de texto (la letra de la columna) con una variable o número (el número de fila), creando una referencia de celda dinámica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué hace la propiedad .Offset en VBA, por ejemplo, Range(“A1”).Offset(3, 1)?

A

Desplaza la referencia de un rango un número específico de filas y columnas. Offset(3, 1) se movería 3 filas hacia abajo y 1 columna a la derecha desde A1, resultando en la celda B4.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Cuál es la diferencia principal entre las propiedades .Value y .Text de un objeto Range?

A) .Value devuelve el número, .Text devuelve un error si la celda tiene formato.
B) Son idénticas.
C) .Value devuelve el valor subyacente de la celda (ej: 1000.5), mientras que .Text devuelve el valor tal como se muestra en la celda, incluyendo el formato (ej: “$1,000.50”).
D) .Value es de lectura/escritura, .Text es solo de escritura.

A

C) .Value devuelve el valor subyacente de la celda (ej: 1000.5), mientras que .Text devuelve el valor tal como se muestra en la celda, incluyendo el formato (ej: “$1,000.50”).

Explicación: .Text es una propiedad de solo lectura. Usar .Value es mejor para cálculos, mientras que .Text captura la apariencia visual.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cómo se puede establecer el color de fondo de una celda en VBA para que sea exactamente igual al de otra, de la forma más precisa?

A

Usando la propiedad .Interior.Color. Por ejemplo: Range(“C6”).Interior.Color = Range(“B6”).Interior.Color.

Explicación: La propiedad .Color es más precisa que .ColorIndex, que tiene una paleta de colores limitada. También se puede usar la función RGB(rojo, verde, azul).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué código VBA usarías para encontrar el número de la última fila con datos en la columna A, asumiendo que no hay espacios en blanco en los datos?

A

Range(“A4”).End(xlDown).Row

Explicación: Este código empieza en A4 y simula presionar Ctrl + Flecha Abajo para saltar al final del bloque de datos contiguo, y luego devuelve el número de esa fila.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué método es más robusto para encontrar la última fila con datos en la columna A, especialmente si puede haber celdas en blanco en medio de los datos?

A

Range(“A” & Rows.Count).End(xlUp).Row

Explicación: Este código comienza en la última celda posible de la columna A (ej. A1048576) y simula presionar Ctrl + Flecha Arriba. Se detiene en la primera celda que encuentra con datos desde abajo, evitando el problema de los espacios en blanco.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué propiedad de un rango selecciona todo el bloque de datos contiguos alrededor de una celda, similar a presionar Ctrl + A?

A

La propiedad .CurrentRegion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué dos métodos se pueden usar para encontrar la última fila usada en toda la hoja de cálculo, no solo en un conjunto de datos específico?

A
  1. ActiveSheet.UsedRange.Rows.Count (cuenta las filas en el rango usado) o ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row.
  2. Cells.SpecialCells(xlCellTypeLastCell).Row.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Cómo se copia el rango A1:B5 al destino D1 en una sola línea de código en VBA?

A

Range(“A1:B5”).Copy Destination:=Range(“D1”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Si quieres copiar un rango pero pegar solo los valores, sin formatos ni fórmulas, ¿qué método usarías después de .Copy?

A

El método .PasteSpecial con el argumento xlPasteValues.

Ejemplo:Range(“A1:A5”).CopyRange(“B1”).PasteSpecial Paste:=xlPasteValues

17
Q

¿Cómo se puede copiar la CurrentRegion (región actual) de un conjunto de datos pero excluyendo la primera fila (el encabezado)?

A

Combinando las propiedades .Offset y .Resize.

Range(“A4”).CurrentRegion.Offset(1, 0).Resize(Range(“A4”).CurrentRegion.Rows.Count - 1).Copy

Explicación:

.CurrentRegion selecciona toda la tabla.
.Offset(1, 0) la desplaza una fila hacia abajo.
.Resize(…) le recorta la última fila (que ahora está vacía) para que tenga el tamaño original menos el encabezado.” “¿Qué hace la línea de código Application.CutCopyMode = False?

18
Q

¿Cómo se cambia el Nombre en Código (Code Name) de una hoja de cálculo?

A

En el Editor de Visual Basic (VBE), selecciona la hoja en el ‘Explorador de Proyectos’ y cambia la propiedad (Name) en la ventana de ‘Propiedades’ (se puede activar con la tecla F4).

19
Q

¿Cuál es la diferencia clave entre ThisWorkbook y ActiveWorkbook en VBA?

A) Son idénticos y se pueden usar indistintamente.
B) ThisWorkbook es el primer libro abierto, ActiveWorkbook es el último.
C) ThisWorkbook se refiere siempre al libro que contiene el código VBA que se está ejecutando, mientras que ActiveWorkbook es el libro que está actualmente seleccionado o en primer plano en la ventana de Excel.
D) ThisWorkbook es de solo lectura, ActiveWorkbook es de lectura/escritura.

A

C) ThisWorkbook se refiere siempre al libro que contiene el código VBA que se está ejecutando, mientras que ActiveWorkbook es el libro que está actualmente seleccionado o en primer plano en la ventana de Excel.

Explicación: ThisWorkbook es la referencia más segura para el libro donde guardas tus macros. ActiveWorkbook puede cambiar si el usuario hace clic en otro libro de trabajo abierto.

20
Q

¿Qué código se utiliza para abrir un libro de trabajo de Excel ubicado en “C:\Temp\Datos.xlsx”?

A

Workbooks.Open(“C:\Temp\Datos.xlsx”)

21
Q

Al guardar un libro de trabajo con macros como un archivo .xlsx normal (sin macros), ¿qué dos elementos clave necesitas en el método .SaveAs?

A) FileFormat:=xlOpenXMLWorkbook y CreateBackup:=True
B) FileFormat:=xlOpenXMLWorkbook y un código para suprimir las alertas (Application.DisplayAlerts = False).
C) ReadOnlyRecommended:=True y ConflictResolution:=xlUserResolution
D) Solo necesitas cambiar la extensión del archivo en el nombre.

A

B) FileFormat:=xlOpenXMLWorkbook y un código para suprimir las alertas (Application.DisplayAlerts = False).

Explicación: Necesitas especificar el formato de archivo correcto (xlOpenXMLWorkbook para .xlsx) y desactivar las alertas para evitar que Excel muestre una ventana emergente de confirmación que detendría la macro.

22
Q

¿Qué función de VBA se usa para reemplazar una parte de un texto por otra, por ejemplo, para cambiar la extensión “.xlsm” por “.xlsx” en un nombre de archivo?

A

La función Replace().

Ejemplo: Replace(ThisWorkbook.Name, “.xlsm”, “.xlsx”)

23
Q

¿Para qué sirve declarar una variable de hoja y asignarle la hoja activa (Dim sh As Worksheet, Set sh = ActiveSheet)?

A

Para obtener la ayuda de Intellisense. ActiveSheet es un objeto genérico y VBA no muestra sus propiedades/métodos automáticamente. Al asignarlo a una variable declarada como Worksheet, VBA sabe qué tipo de objeto es y activa Intellisense para esa variable.