在Excel中获取最后一个非空工作表的最佳方式是什么(VBA)

我正在尝试写一个VBAmacros为一个组

  • 有一个工作簿,他们每天创build新的工作表,也有
  • 工作表1 ,工作表2和工作表3放在他们长长的清单末尾。

我需要在汇总此信息的其他工作簿的新列中创build外部单元格引用。

所以我需要知道如何获得最后的非空白表格,这样我就可以抓取这些数据,并将其恰当地放在摘要中。

该function通过从右到左的工作表工作,直到find非空白工作表并返回其名称

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 

上面的方法将忽略单个单元格的表单,而这可能看起来是一个诡计,寻找一个非空白单元格的Find将给予更多的确定性。

Find方法中的xlFormulas参数将查找隐藏的单元格(但不是过滤的单元格),而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