Приведенный выше метод игнорирует лист с одной записью в ячейке, хотя это может показаться пустяком, Find
, ищущий непустую ячейку, придаст больше уверенности.
Аргумент xlFormulas
в методе Find
найдет скрытые ячейки (но не отфильтрованные ячейки), тогда как xlValues
- нет.
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