我在 Excel 中有一个表格,当用户在表格后添加数据时,该数据不属于该表格。
我创建了一个可以执行来扩展表的代码。代码如下:
Sub ExtendTableToLastRow()
Sheets("Update").Select
If ActiveSheet.FilterMode Then ActiveSheet.AutoFilter.ShowAllData
'LastRow = Cells(Rows.Count, 1).End(xlUp).Row
LastRow = ActiveSheet.Range("a1").Offset(ActiveSheet.Rows.Count - 1, 0).End(xlUp).Row
ActiveSheet.ListObjects("TUpdate").Resize Range("$A$2:$AK$" & LastRow)
Range("A1").Select
End Sub
问题是这必须手动执行。
根据评论我创建了以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
' Sizes the table to include all new rows
Application.EnableEvents = False
If ActiveSheet.FilterMode Then ActiveSheet.AutoFilter.ShowAllData
LastRow = ActiveSheet.Range("a1").Offset(ActiveSheet.Rows.Count - 1, 0).End(xlUp).Row
ActiveSheet.ListObjects("TUpdate").Resize Range("$A$2:$AK$" & LastRow)
Application.EnableEvents = True
End Sub
但是当我在表格下的单元格中添加值时,代码会执行,但现在当我复制一行时,代码会执行。
您可以更改 Excel 设置来执行此操作:
File > Options > Proofing > AutoCorrect Options > AutoFormat As You Type
并检查Include new rows and columns in table
或者仅运行此行一次:
Application.AutoCorrect.AutoExpandListRange = True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)