Cómo seleccionar celdas de la hoja 2 en VBA
¿Cómo seleccionar celdas en la hoja de trabajo actual?
Por ejemplo, puede utilizar el siguiente código para seleccionar la celda D5 en la hoja de trabajo actual:
ActiveSheet.Cells(5, 4).Select
Or : ActiveSheet.Range("D5").Select
¿Cómo seleccionar celdas en otras hojas de trabajo en el mismo libro?
Por ejemplo, para seleccionar la celda E6 en otra hoja de cálculo del mismo libro, usaría el siguiente código:
Application.Goto ActiveWorkbook.Sheets("Sheet2"). 6, 5)
O: Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
También puede activar la hoja de trabajo primero y luego seleccionar :
Hojas("Hoja2").Activar
ActiveSheet.Cells(6, 5).Select
¿Cómo seleccionar celdas en diferentes libros de trabajo Celda?
Por ejemplo, para seleccionar la celda F7 en una hoja de cálculo de otro libro, puede utilizar el siguiente código:
Application.Goto Workbooks("BOOK2.XLS") .Sheets(" Hoja1").Celdas(7, 6)
O: Aplicación.Ir a libros de trabajo("BOOK2.XLS").Hojas("Hoja1").Rango("F7") p>
También puede activar las hojas de trabajo en el libro primero y luego seleccionar:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells (7, 6).Seleccionar
¿Cómo seleccionar el rango de celdas en la hoja de trabajo actual?
Por ejemplo, para seleccionar el rango de celdas C2:D10 en la hoja de trabajo actual, puede usar el siguiente código:
ActiveSheet.Range(Cells(2, 3), Cells( 10 , 4)).Seleccione
o: ActiveSheet.Range("C2:D10").Seleccione
o: ActiveSheet.Range("C2", "D10"). Seleccione
¿Cómo seleccionar un rango de celdas en otra hoja de trabajo en el mismo libro?
Por ejemplo, para seleccionar el rango de celdas D3:E11 en otra hoja de cálculo del mismo libro, puede utilizar el siguiente código:
Application.Goto ActiveWorkbook.Sheets("Sheet3 " ).Range("D3:E11")
O: Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
También usted Puede activar la hoja de trabajo primero y luego seleccionar:
Hojas("Hoja3").Activar
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)). Seleccionar
¿Cómo seleccionar un rango de celdas en hojas de trabajo en diferentes libros?
Por ejemplo, para seleccionar el rango de celdas E4:F12 en una hoja de cálculo de otro libro, puede utilizar el siguiente código:
Application.Goto Workbooks("BOOK2.XLS ") .Hojas("Hoja1").Rango("E4:F12")<
/p>
O: Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
También puedes activar el trabajo primera hoja y luego seleccione:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4, 5), Cells (12, 6)).Seleccionar
¿Cómo seleccionar un rango con nombre en la hoja de trabajo actual?
Por ejemplo, para seleccionar el rango denominado "Prueba" en la hoja de trabajo actual, puede utilizar el siguiente código:
Rango("Prueba").Select
O: Aplicación. Ir a "Prueba"
¿Cómo seleccionar un rango con nombre en otra hoja de trabajo en el mismo libro?
Por ejemplo, para seleccionar un rango llamado "Prueba" en otra hoja de trabajo en el mismo libro, use el siguiente código:
Application.Goto Sheets("Sheet1"). "Prueba")
También puedes activar la hoja de trabajo primero y luego seleccionar:
Hojas("Hoja1").Activar
Rango("Prueba") .Seleccionar
¿Cómo seleccionar un rango con nombre en una hoja de trabajo en un libro de trabajo diferente?
Por ejemplo, para seleccionar un rango llamado "Prueba" en una hoja de cálculo de un libro diferente, use el siguiente código:
Application.Goto Workbooks("BOOK2.XLS") . Sheets("Sheet2").Range("Test")
También puedes activar la hoja de trabajo primero y luego seleccionar:
Workbooks("BOOK2.XLS").Sheets(" Sheet2").Activate
Range("Test").Select
¿Cómo seleccionar celdas relacionadas con la celda actual?
Por ejemplo, para seleccionar una celda 5 filas debajo y 4 columnas a la izquierda de la celda actual, puedes usar el siguiente código:
ActiveCell.Offset(5, -4 ).Seleccione
Para seleccionar celdas 2 filas arriba y 3 columnas a la derecha de la celda actual, puede usar el siguiente código:
ActiveCell.Offset(-2, 3) .Seleccionar
p>Nota: Asegúrese de que la distancia entre la celda actual y la celda seleccionada esté dentro del rango de la hoja de trabajo; de lo contrario, se producirá un error.
¿Cómo seleccionar una celda relacionada con otra celda (no con la celda actual)?
Por ejemplo, para seleccionar celdas 5 filas debajo de la celda C7 y 4 columnas a la derecha, puedes usar el siguiente código:
ActiveSheet.Cells(7, 3).Offset( 5, 4).Select
O: ActiveSheet.Range("C7").Offset(5, 4).Select
Cómo seleccionar un rango de celdas que se desvía del especificado ¿rango?
Por ejemplo, para seleccionar un rango que tenga el mismo tamaño que el rango denominado "Prueba", pero 4 filas debajo y 3 columnas a la derecha, usaría el siguiente código:
ActiveSheet .Range("Test").Offset(4, 3).Select
Si el rango nombrado no está en la hoja de trabajo actual, puede activar la hoja de trabajo primero y luego seleccionarla, como por ejemplo siguiente código:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
Cómo para seleccionar una región específica y expandir el tamaño de la región?
Por ejemplo, para seleccionar el rango denominado "Base de datos" en la hoja de trabajo actual y luego extender el rango hacia abajo 5 filas, puede usar el siguiente código:
Rango("Base de datos" ).Select
Selection.Resize(Selection.Rows.Count + 5, Selection.Columns.Count).Select
Cómo seleccionar un área específica, luego desviarse y luego expandirse el tamaño del área?
Por ejemplo, para seleccionar un área de 4 filas y 3 columnas a la derecha del área denominada "Base de datos", y luego extender 2 filas y 1 columna, puedes usar el siguiente código:
Rango( "Base de datos").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, Selection.Columns.Count + 1).Select
¿Cómo seleccionar dos o más áreas designadas?
Por ejemplo, para seleccionar dos rangos llamados "Prueba" y "Muestra" al mismo tiempo, puedes usar el siguiente código:
Application.Union(Range("Prueba" ), Range("Sample")).Select
Tenga en cuenta que estos dos rangos deben estar en la misma hoja de trabajo, como el siguiente código:
Set y = Application.Union( Range( "Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
Pero el método Unión no puede manejar áreas en diferentes hojas de trabajo, se puede usar el siguiente código:
Establezca y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
Habrá un error.
¿Cómo seleccionar el área de intersección de dos o más áreas especificadas?
Por ejemplo, para seleccionar la intersección de dos rangos denominados "Prueba" y "Muestra", puede utilizar el siguiente código:
Application.Intersect(Range("Test" ) , Range("Sample")).Select
Tenga en cuenta que los dos rangos deben estar en la misma hoja de trabajo.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
superficie.¿Cómo seleccionar la última celda de una columna de datos continua?
Por ejemplo, para seleccionar la última celda de una columna consecutiva, puedes utilizar el siguiente código:
ActiveSheet.Range("a1").End(xlDown).Select
Este código se utiliza en la hoja de trabajo anterior y se selecciona la celda A4.
¿Cómo seleccionar las celdas vacías en la parte inferior de una columna de datos continua?
Por ejemplo, para seleccionar celdas debajo de un rango contiguo de celdas, puede usar el siguiente código:
ActiveSheet.Range("a1").End(xlDown).Offset( 1, 0).Seleccione
Este código se utiliza en la hoja de trabajo anterior y se selecciona la celda A5.
¿Cómo seleccionar un rango de celdas de datos continuas en una columna?
Por ejemplo, para seleccionar un rango de celdas de datos contiguas en una columna, puede usar el siguiente código:
ActiveSheet.Range("a1", ActiveSheet.Range("a1 "). End(xlDown)).Select
o: ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).Address).Select
Este código se utiliza en la hoja de trabajo anterior y se seleccionará el rango de celdas A1:A4.
¿Cómo seleccionar un rango de celdas de datos no continuos en una columna?
Por ejemplo, para seleccionar un rango de celdas de datos no contiguas en una columna, puede usar el siguiente código:
ActiveSheet.Range("a1", ActiveSheet.Range( "a65536") .End(xlUp)).Select
O: ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536").End(xlUp).Address).Select p>
Este código se utiliza en la hoja de trabajo anterior y se seleccionará el rango de celdas A1:A6.
¿Cómo seleccionar un rango de celdas rectangular (normal)?
Para seleccionar un área rectangular que rodea una celda, puede utilizar el método CurrentRegion. El método CurrentRegion seleccionará una región rodeada de filas y columnas vacías, como el siguiente código:
ActiveSheet.Range("a1").CurrentRegion.Select
Este código se utiliza en En la hoja de trabajo anterior, se seleccionará el rango de celdas A1:C4.
También puedes usar el siguiente código:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
O:
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
Si desea Para seleccionar el rango de celdas A1:C6, puede utilizar el siguiente código:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells (65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
o :
últimaCol = ActiveSheet.Range("a1").End(xlToRight).Column
últimaFila = ActiveSheet.Cells(65536, últimaCol).End(xlUp).Row
ActiveSheet.Range("a1:" & ActiveSheet.Cells(lastRow, lastCol).Address).Select
= = = = = = = = = = = = = = = = = = = =
¿Cómo seleccionar múltiples columnas no consecutivas de diferentes longitudes?
Por ejemplo, existe una hoja de trabajo como la que se muestra a continuación:
Para seleccionar los datos de las columnas A y C al mismo tiempo, es decir, los rangos de celda A1:A3 y C1 :C6, puedes usar el siguiente código:
StartRange = "A1"
EndRange = "C1"
Establecer a = Range(StartRange, Range( StartRange).End( xlDown))
Establecer b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a, b).Select
= = = = = = = = = = = = = = = = = = = =
Nota: Al utilizar el método Application.Goto, si especifica un rango específico en otra hoja de trabajo ( no la hoja de trabajo actual), cuando se usan dos propiedades de Celdas en la propiedad Rango, se debe incluir el objeto Hojas, como por ejemplo:
Application.Goto Sheets("Sheet1").Range(Sheets("Sheet1" ).Range(Hojas( "Hoja1").Celdas(2, 3), Hojas("Hoja1").Celdas(4, 5)))
= = = = = = = = = = = = = = = = = = = =
En VBA, el objeto Rango puede representar una sola celda o un rango de celdas. El siguiente contenido describe los métodos más comunes para identificar y manejar objetos Range.
Hacer referencia a todas las celdas de la hoja de cálculo
Si no especifica un número de índice al aplicar la propiedad Celdas a la hoja de cálculo, este método devolverá un objeto Rango que representa todas las celdas de la hoja de cálculo. . El siguiente subprocedimiento borra el contenido de todas las celdas de la Hoja1 del libro activo.
Sub ClearSheet()
Worksheets("Sheet1").Cells.ClearContents
End Sub
Usa notación A1 para hacer referencia a celdas Celdas y rangos
Puedes usar la propiedad Rango para hacer referencia a celdas o rangos de celdas en el estilo de referencia A1. La siguiente subrutina establece la fuente en negrita en el rango de celdas A1:D5.
Sub FormatRange()
Libros de trabajo("Libro1").Hojas("Hoja1").Rango("A1:D5") _
.Font .Bold = True
End Sub
La siguiente tabla muestra algunas referencias de estilo A1 utilizando la propiedad Rango.
Significado de referencia
Rango("A1") Celda A1
Rango("A1:B5") El rango desde la celda A1 hasta la celda B5
Rango("C5:D9,G9:H16") Múltiples áreas seleccionadas
Rango("A:A") Columna A
Rango( "1:1" ) La primera fila
Rango("A:C") El área desde la columna A hasta la columna C
Rango("1:5") Desde la primera fila El rango desde la fila a la fila 5
Rango("1:1,3:3,8:8") Filas 1, 3 y 8
Rango("A:A, C:C, F:F") Columnas A, C y F
Hacer referencia a filas y columnas
Puede utilizar la propiedad Filas o la propiedad Columnas para procesar filas o columnas enteras. Estas dos propiedades devuelven un objeto Range que representa el rango de celdas. En el siguiente ejemplo, Filas(1) devuelve la primera fila de la Hoja1 y luego pone el área en negrita.
Sub RowBold()
Hojas de trabajo("Sheet1").Rows(1).Font.Bold = True
End Sub
La siguiente tabla ilustra algunas referencias de filas y columnas utilizando las propiedades Filas y Columnas.
Significado de la cita
Filas(1) primera fila
Filas todas las filas de la hoja de cálculo
Columnas(1) primeras columnas p>
Columnas("A") Primera columna
Columnas Todas las columnas de la hoja de cálculo
Para procesar varias filas o columnas al mismo tiempo, puede crear variables de objeto y utilice el método Unión para combinar varias llamadas a la propiedad Filas o a la propiedad Columnas. El siguiente ejemplo establece en negrita el tamaño de fuente de la primera, tercera y quinta filas de la primera hoja de trabajo del libro activo.
Sub VariasFilas()
Hojas de trabajo("Hoja1").Activar
Atenuar myUnion como rango
Establecer myUnion = Union(Filas (1), Filas(3), Filas(5))
myUnion.Font.Bold = True
End Sub
Utilice el número de índice para hacer referencia la celda
Puedes usar la propiedad Celdas para hacer referencia a celdas individuales usando números de índice de filas y columnas.
Esta propiedad devuelve un objeto Range que representa una sola celda. En el siguiente ejemplo, Celdas(6,1) devuelve la celda A6 en la Hoja1 y luego establece la propiedad Valor en 10.
Sub EnterValue()
Hojas de trabajo("Hoja1").Celdas(6, 1).Value = 10
End Sub
Debido a que puede usar variables en lugar de números, la propiedad Celdas es ideal para recorrer un rango de celdas, como se muestra en el siguiente ejemplo.
Sub CycleThrough()
Atenuar el contador como entero
Para contador = 1 a 20
Hojas de trabajo("Hoja1").Celdas (Contador, 3).Valor = Contador
Siguiente contador
End Sub
Si desea cambiar las propiedades de todas las celdas de un rango al mismo tiempo tiempo (o el método se aplica a todas las celdas del rango), se recomienda utilizar la propiedad Rango.
Usa notación abreviada para hacer referencia a celdas
Puedes usar corchetes para encerrar el estilo de referencia A1 o un rango con nombre como acceso directo a la propiedad Rango. Esto elimina la necesidad de escribir la palabra "Rango" o utilizar comillas, como en el siguiente ejemplo.
Sub ClearRange()
Hojas de trabajo("Hoja1").[A1:B5].ClearContents
End Sub
Sub SetValue ()
[MyRange].Value = 30
End Sub
Usa el objeto Range para hacer referencia a la celda
Si el objeto La variable está configurada como un objeto de rango, puede usar nombres de variables para operar fácilmente en rangos de celdas.
El siguiente procedimiento crea la variable de objeto myRange y la asigna al rango A1:D5 en la Hoja1 del libro activo. Las declaraciones posteriores utilizan este nombre de variable en lugar del objeto Range para modificar las propiedades del rango.
Sub Random()
Atenuar myRange como rango
Establecer myRange = Worksheets("Sheet1").Range("A1:D5")
myRange.Formula = "=RAND()"
myRange.Font.Bold = True
End Sub
Hacer referencia a un rango con nombre p >
Es más fácil identificar un rango de celdas por su nombre que por la notación de estilo A1. Para nombrar un rango de celdas seleccionado, haga clic en el cuadro de nombre en el extremo izquierdo de la barra de fórmulas, escriba un nombre y luego presione Entrar.
Hacer referencia a un rango con nombre
El siguiente ejemplo hace referencia a un rango llamado "MyRange" en un libro llamado "MyBook.xls".
Sub FormatRange()
Range("MyBook.xls!MyRange").Font.Italic = True
End Sub
El siguiente ejemplo hace referencia al rango específico de la hoja de trabajo "Hoja1!Ventas" en el libro denominado "Report.xls".
SubformatoVentas()
Rango("[Report.xls]Hoja1!Ventas").BorderAround Peso:=xlthin
End Sub
Para seleccionar un rango con nombre, utilice el método GoTo, que activa el libro y la hoja de trabajo y luego selecciona el rango.
Sub ClearRange()
Aplicación.Goto Reference:="MyBook.xls!MyRange"
Selección.ClearContents
End Sub
El siguiente ejemplo muestra cómo se escribiría el mismo procedimiento que el ejemplo anterior para el libro activo.
Sub ClearRange()
Aplicación.Ir a referencia:="MyRange"
Selección.ClearContents
End Sub
Recorre las celdas en el rango con nombre
El siguiente ejemplo utiliza la instrucción de bucle For Each...Next para recorrer cada celda en el rango con nombre. Si el valor de cualquier celda en el rango excede el valor límite, cambie el color de la celda a amarillo.
Sub ApplyColor()
Límite constante como entero = 25
Para cada c en el rango ("MyRange")
Si c .Value > Limitar entonces
c.Interior.ColorIndex = 27
Finalizar si
Siguiente c
End Sub
Hacer referencia a múltiples rangos
Es fácil hacer referencia a múltiples rangos de celdas al mismo tiempo utilizando los métodos adecuados. Puede hacer referencia a cualquier combinación de rangos de celdas con los métodos Rango y Unión; use la propiedad Áreas para hacer referencia a un grupo seleccionado de rangos de celdas en la hoja de trabajo.
Usar la propiedad Rango
Puede usar la propiedad Rango para hacer referencia a múltiples rangos insertando comas entre dos o más referencias. El siguiente ejemplo borra el contenido de tres áreas en la Hoja1.
Sub ClearRanges()
Hojas de trabajo("Hoja1").Rango("C5:D9,G9:H16,B14:D18"). ClearContents
End Sub
Los rangos con nombre facilitan el trabajo con múltiples rangos usando la propiedad Rango. El siguiente ejemplo funciona cuando los tres rangos con nombre están en la misma hoja de trabajo.
Sub ClearNamed()
Range("MyRange, YourRange, HisRange").ClearContents
End Sub
Usar método Unión
Utilice el método Unión para combinar múltiples rangos en un objeto Rango. El siguiente ejemplo crea un objeto Rango llamado myMultipleRange, lo define como la combinación de rangos A1:B2 y C3:D4 y luego establece la fuente del rango combinado en negrita.
Sub MultipleRange()
Dim r1, r2, myMultipleRange As Range
Establecer r1 = Sheets("Sheet1").Range("A1:B2" )
Establecer r2 = Hojas("Hoja1").Range("C3:D4")
Establecer myMultipleRange = Unión(r1, r2)
myMultipleRange .Font.Bold = True
End Sub
Usar la propiedad Áreas
Puedes usar la propiedad Áreas para hacer referencia a un rango de celdas seleccionado o a varios rangos seleccionados Colección regional. El siguiente procedimiento cuenta el número de bloques en el área seleccionada y muestra un mensaje de advertencia si hay varios bloques.
Sub FindMultiple()
Si Selection.Areas.Count > 1 Entonces
MsgBox "No se puede operar en selecciones múltiples".
End If
End Sub
Procesamiento de áreas tridimensionales
Si desea procesar áreas de celda en la misma ubicación en varias hojas de trabajo, puede usar la herramienta Array función para seleccionar dos Una o más hojas de trabajo. El siguiente ejemplo establece el formato de borde de un rango de celdas tridimensional.
SubformatoHojas()
Hojas(Array("Hoja2", "Hoja3", "Hoja5")).Seleccione
Rango("A1:H1 ").Select
Selection.Borders(xlBottom).LineStyle = xlDouble
End Sub
El siguiente ejemplo utiliza el método FillAcrossSheets para cambiar el área en Sheet2 El formato y todos los datos se transfieren a los rangos correspondientes en todas las hojas de trabajo del libro activo.
Sub FillAll()
Hojas de trabajo("Hoja2").Range("A1:H1") _
.Borders(xlBottom).LineStyle = xlDouble
Worksheets.FillAcrossSheets (Worksheets("Sheet2") _
.Range("A1:H1"))
End Sub