vacia una ultima seleccionar repetir recorrer rango otra nombre macro insertar hoja hasta fila especificas datos cual copiar con celdas celda buscar excel vba excel-vba

excel - una - repetir macro hasta celda vacia



¿Cuál es la mejor manera de obtener la última hoja de cálculo no vacía en Excel(VBA)? (2)

Estoy tratando de escribir una macro vba para un grupo tha

  • tiene un libro de trabajo donde diariamente crean nuevas hojas de trabajo, y también tienen
  • Hoja 1 , Hoja 2 y Hoja 3 al final de su larga lista de hojas.

Necesito crear una referencia de celda externa en una nueva columna en un libro de trabajo diferente donde esta información se está resumiendo.

Así que necesito saber cómo obtener la última hoja no vacía para poder tomar esta información y ubicarla de manera apropiada en el resumen.


Esta función funciona a través de las hojas de derecha a izquierda hasta que encuentra una hoja que no está en blanco y devuelve su nombre

Function GetLastNonEmptySheetName() As String Dim i As Long For i = Worksheets.Count To 1 Step -1 If Sheets(i).UsedRange.Cells.Count > 1 Then GetLastNonEmptySheetName = Sheets(i).Name Exit Function End If Next i End Function


El método anterior ignorará una hoja con una sola entrada de celda, mientras que puede parecer una objeción, una Find busque una celda no en blanco dará más certeza.

El argumento xlFormulas en el método Find encontrará celdas ocultas (pero no celdas filtradas) mientras que xlValues no lo hará.

Sub FindLastSht() Dim lngCnt As Long Dim rng1 As Range Dim strSht As String With ActiveWorkbook For lngCnt = .Worksheets.Count To 1 Step -1 Set rng1 = .Sheets(lngCnt).Cells.Find("*", , xlFormulas) If Not rng1 Is Nothing Then strSht = .Sheets(lngCnt).Name Exit For End If Next lngCnt If Len(strSht) > 0 Then MsgBox "Last used sheet in " & .Name & " is " & strSht Else MsgBox "No data is contained in " & .Name End If End With End Sub