我正在尝试为一个组
编写一个vba宏我需要在不同工作簿的新列中创建外部单元格引用,以便汇总此信息。
所以我需要知道如何获取最后一张非空表,以便我可以抓取这些数据并将其正确放入摘要中。
答案 0 :(得分:6)
此功能从右到左贯穿工作表,直到找到非空白工作表,并返回其名称
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
答案 1 :(得分:1)
上面的方法将忽略具有单个单元格条目的工作表,而这似乎是一个狡辩,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