0
我一直在使用此代码来定义包含数据的范围的变量。然后,我尝试用它来清除工作表(不包括标题),但它始终显示最后一行是A2,例如,在范围W4中存在来自先前粘贴的“重影”数据时。VBA Excel代码不删除“空白”单元格
为什么这段代码找不到真正的最后一行?即使我运行这个,然后去查找特殊>最后一行 - 它找到最后粘贴的空白范围(这是“空”)。你可以看到变量LastRow总是“1”。同时,我刚刚将删除范围设置为A2:W5000,因为我知道我永远不会拥有那么多的数据,但是如果让VBA找到真正的最后一行并将其存储在变量中。 谢谢
Public Sub ClearSheet()
Dim LastRow As Long
Dim LastCol As Long
If WorksheetFunction.CountA(Cells) > 0 Then
LastRow = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
MsgBox (LastRow)
MsgBox (LastCol)
Range("A2").Resize(LastRow, LastCol).EntireRow.Delete 'retains headers in A1:W1
我找不出这个编辑器以及如何格式化代码! – purplefolder
http://stackoverflow.com/posts/35532472/edit – 0m3r
为什么不只是'范围(“A2:CC1040000”)。ClearContents' –