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