Excel VBA在表格下方添加数据时扩展表格

我在Excel中有一个表格,当用户在表格后面添加数据时,数据不属于表格。

我创build了一个可以执行的代码来扩展表。 代码如下:

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 

问题是这个必须手动执行。

根据我已经创build了以下代码的评论:

 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 

但是,当我在表格下的一个单元格中添加一个值时,代码就会执行,但现在当我复制一行时。

您可以将您的代码作为Worksheet_Change事件的处理程序。

在MSDN上的Arrtice

您可以更改Excel设置来执行此操作:

File > Options > Proofing > AutoCorrect Options > AutoFormat As You Type并选中” Include new rows and columns in table

或者只运行一行这一行:

 Application.AutoCorrect.AutoExpandListRange = True