我有一张表格,其他人每周都会将新数据粘贴到其中。每周粘贴的数据将按行而不是列更改大小。我已经将这个过程自动化,直到我保留第一行,这样公式就不会被删除。这一切都是通过我分配了代码的按钮完成的。现在我需要删除表格的其余行。这是我目前为止可以使用的代码:
Sub ShrinkTable()
Range("RDNPPD[[#Headers],[Follow Up by Corp Security]]").Select
ActiveSheet.ListObjects("RDNPPD").ListRows(ActiveCell.Row -
1).Range.Select
Range(Selection, Selection.End(xlDown)).Select
End Sub
Sub DeleteRows()
Selection.ListObject.ListRows(2).Delete
Selection.ListObject.ListRows(2).Delete
Selection.ListObject.ListRows(2).Delete
Range("RDNPPD[[#Headers],[Follow Up by Corp Security]]").Select
End Sub
RE: Sub DeleteRows() - 我录制了一个宏,第一行代码重复删除表中的行,每次使用时都会发生变化,因此不起作用。要删除的第一行将始终保持不变:第 5 行。这是代码需要考虑动态的最后一行。
如何删除动态环境的选择?非常感谢!
答案1
这重复了您的录音操作 - 删除表格的最后一行,直到只剩下一行
它会关闭ScreenUpdating
并Calculation
使其更快;最后它会将它们重新打开
Option Explicit
Public Sub ShrinkTable()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With ThisWorkbook.Worksheets("Sheet3") 'Update Sheet Name
If .ListObjects.Count > 0 Then
With .ListObjects("RDNPPD")
While .ListRows.Count > 1 'Delete last row until first
.ListRows(.ListRows.Count).Delete
Wend
End With
End If
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
前
后
。
Table
(ListObject
) 结构