variable valor una ultima sirve seleccionar rango que para macro hoja hasta desde datos con celda asignar activesheet activa excel excel-vba excel-2010

valor - seleccionar hoja excel vba



¿Cómo se selecciona toda la hoja de Excel con Rango usando Macro en VBA? (8)

Encontré una solución similar a esta pregunta en c # ... Ver enlace a continuación

Cómo seleccionar todas las celdas en una hoja de cálculo en Excel.Rango objeto de c #?

¿Alguien tiene un fragmento para hacer esto en VBA? No estoy muy familiarizado con VBA, así que esto sería útil. Esto es lo que tengo hasta ahora ...

Selecciono datos normalmente usando "ctrl + shift over arrow, down arrow" para seleccionar un rango completo de celdas. Cuando ejecuto esto en una macro codifica A1: Q398247930, por ejemplo. Necesito que sea solo

.SetRange Range("A1:whenever I run out of rows and columns")

Esto es muy simple, y podría hacerlo fácilmente sin una macro, pero estoy tratando de hacer que todo el proceso sea una macro, y esto es solo una parte.

Sub sort() ''sort Macro Range("B2").Select ActiveWorkbook.Worksheets("Master").sort.SortFields.Clear ActiveWorkbook.Worksheets("Master").sort.SortFields.Add Key:=Range("B2"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Master").sort .SetRange Range("A1:whenever I run out of rows and columns") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub

editar: hay otras partes en las que podría querer usar el mismo código pero el rango es "C3: Fin de filas y columnas". ¿Hay alguna forma en VBA de obtener la ubicación de la última celda del documento?

¡Gracias!


Creo que desea encontrar la región actual de A1 y las celdas circundantes, no necesariamente todas las celdas de la hoja. Si es así, simplemente use ... Range ("A1"). CurrentRegion


Simplemente puede usar cells.select para seleccionar todas las celdas en la hoja de cálculo. Puede obtener una dirección válida diciendo Range(Cells.Address) .

Si quiere encontrar el último Used Range donde ha realizado algún cambio de formato o ha ingresado un valor, puede llamar a ActiveSheet.UsedRange y seleccionarlo desde allí. Espero que ayude


Quizás esto podría funcionar:

Sh.Range ("A1", Sh.Range ("A" y Rows.Count) .End (xlUp))


puedes usar todas las celdas como un objeto como este:

Dim x as Range Set x = Worksheets("Sheet name").Cells

X ahora es un objeto de rango que contiene toda la hoja de trabajo


Refiriéndome a la primera pregunta, estoy investigando lo mismo. El resultado que obtengo al grabar una macro es comenzar seleccionando la celda A76:

Sub find_last_row() Range("A76").Select Range(Selection, Selection.End(xlDown)).Select End Sub


Sub SelectAllCellsInSheet(SheetName As String) lastCol = Sheets(SheetName).Range("a1").End(xlToRight).Column Lastrow = Sheets(SheetName).Cells(1, 1).End(xlDown).Row Sheets(SheetName).Range("A1", Sheets(SheetName).Cells(Lastrow, lastCol)).Select End Sub

Para usar con ActiveSheet:

Call SelectAllCellsInSheet(ActiveSheet.Name)


Yo recomendaría grabar una macro, como se encuentra en esta publicación;

Excel VBA macro para filtrar registros

Pero si está buscando encontrar el final de sus datos y no el final del libro de trabajo necesario, si no hay celdas vacías entre el principio y el final de sus datos, a menudo uso algo como esto;

R = 1 Do While Not IsEmpty(Sheets("Sheet1").Cells(R, 1)) R = R + 1 Loop Range("A5:A" & R).Select ''This will give you a specific selection

Le quedan R = al número de la fila después de que finalice su información. Esto podría usarse también para la columna, y luego podría usar algo como Células (C, R). Seleccione, si hizo C la representación de la columna.


tienes algunas opciones aquí:

  1. Usar la propiedad UsedRange
  2. encontrar la última fila y columna utilizada
  3. usa una mímica de cambio hacia abajo y cambia a la derecha

Yo personalmente uso el rango usado y encuentro la última fila y el método de columna la mayor parte del tiempo.

Así es cómo lo haría usando la propiedad UsedRange:

Sheets("Sheet_Name").UsedRange.Select

Esta declaración seleccionará todos los rangos utilizados en la hoja de trabajo, tenga en cuenta que a veces esto no funciona muy bien cuando elimina columnas y filas.

La alternativa es encontrar la última celda utilizada en la hoja de trabajo

Dim rngTemp As Range Set rngTemp = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious) If Not rngTemp Is Nothing Then Range(Cells(1, 1), rngTemp).Select End If

Lo que este código está haciendo:

  1. Encuentra la última celda que contiene cualquier valor
  2. seleccione la celda (1,1) hasta la última celda