dynamic修改表格大小

我写了一个代码,在过滤一些行后从其他表导入表的一个代码。我的问题是,当我超过了表中的行数超过了表。 现在,我想知道是否有办法用行数来dynamic修改表的大小。

Public Sub refresh() Dim ws1 As Worksheet, ws2 As Worksheet, lr1 As Long, lRow As Long Set ws1 = ThisWorkbook.Worksheets("Scénarios de menace") Set ws2 = ThisWorkbook.Worksheets("Analyse de risque") Application.Calculation = xlCalculationAutomatic ws2.Range("B6:N" & ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row).ClearContents lr1 = ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row ws1.Range("A1:A" & lr1).AutoFilter Field:=1, Criteria1:="x" ws1.Range("B3:N" & lr1).SpecialCells(xlCellTypeVisible).Copy ws2.Range("B6").PasteSpecial Paste:=xlPasteValuesAndNumberFormats ws1.Range("A6:A" & lr1).AutoFilter ws2.Activate: ws2.Cells(1, 1).Activate End Sub 

问题是,调整表格的大小会让你知道它的名字。

我已经添加了3行代码:

  1. 获取粘贴数据使用的总范围
  2. 为这个总范围创build一个表格
  3. 调整表格的大小(在表格刚刚设定的时候,这个表格并不是很有用)

     Public Sub refresh() Dim ws1 As Worksheet, ws2 As Worksheet, lr1 As Long, lRow As Long, ResultsRange As String Set ws1 = ThisWorkbook.Worksheets("Scénarios de menace") Set ws2 = ThisWorkbook.Worksheets("Analyse de risque") Application.Calculation = xlCalculationAutomatic ws2.Range("B6:N" & ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row).ClearContents lr1 = ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Row ws1.Range("A1:A" & lr1).AutoFilter Field:=1, Criteria1:="x" ws1.Range("B3:N" & lr1).SpecialCells(xlCellTypeVisible).Copy ws2.Range("B6").PasteSpecial Paste:=xlPasteValuesAndNumberFormats ws1.Range("A6:A" & lr1).AutoFilter ws2.Activate ws2.Cells(1, 1).Activate ResultsRange = "$B$6:$N$" & ws2.Range("B"& ws2.Rows.Count).End(xlUp).Row ws2.ListObjects.Add(xlSrcRange, Range(ResultsRange), , xlYes).Name = "Results_Table" ws2.ListObjects("Results_Table").Resize Range(ResultsRange) End Sub