这将找到提供的工作簿和工作表中使用的最后一个单元格(最后一列和最后一行)。适应口味(例如,如果您只使用一个工作簿,则不需要 targetwkb)。如果您不需要找到最后一列,或者只想要给定列的特定最后一行,您可以定义不同的“With”部分(例如“With Worksheets(targetSheet).Range("A:A ") 或类似的东西:
Function FindLastCell(targetWbk As String, targetSheet As String) As Range
Dim LastColumn As Integer, lastRow As Integer
'Finds the last used cell in target wbk/sheet
With Workbooks(targetWbk).Worksheets(targetSheet)
lastRow = .Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).row
LastColumn = .Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set FindLastCell = Range(.Cells(1, 1), .Cells(lastRow, LastColumn))
End With
End Function
总体而言,上述方法是一种更好的方法,因为它从最后一个单元格搜索到顶部。反之,如果您有一个空单元格,那么 Excel 将停止搜索,并且您可以覆盖后面的所有数据,因为在某处留下了一个空白单元格。
如果您有大量数据(例如数千个),您可能希望将整数更改为 long,这样您就不会碰到整数限制。它也不需要是一个函数,可以是一个子但没关系...