是否有更快的代码用于将新行添加到表中-Excel VBA

是否有更快的代码用于将新行添加到表中-Excel VBA,vba,excel,Vba,Excel,我向表中添加新行,每次代码发现要添加的新值时。 我用于此Set newRow=ProjectTable.ListRows.Add的代码工作正常。 但这使得它运行非常缓慢 是否有一个代码可以实现同样的功能,但运行速度更快 Dim ProjectName As String Dim ResourceType As String Dim newRow As ListRow Dim RPLastRow As Long RPLastRow = RPSheet.Cells(Rows.Count, 1).En

我向表中添加新行,每次代码发现要添加的新值时。
我用于此
Set newRow=ProjectTable.ListRows.Add的代码工作正常。
但这使得它运行非常缓慢

是否有一个代码可以实现同样的功能,但运行速度更快

Dim ProjectName As String
Dim ResourceType As String
Dim newRow As ListRow
Dim RPLastRow As Long
RPLastRow = RPSheet.Cells(Rows.Count, 1).End(xlUp).Row

For Each cell In RPSheet.Range("A5:A" & RPLastRow)
    If cell = project Then
        Dim cRow As Long
        cRow = cell.Row

        'enter resource type to table
        ResourceType = RPSheet.Range("B" & cRow).Value
        Set newRow = ProjectTable.ListRows.Add
        newRow.Range(1, 1).Value = ResourceType

        'find amount of resources linked to project and add number to table
        ProjectName = project
        newRow.Range(1, 2).Value = Sheet2.NumberOfResources(ProjectName, ResourceType)
    End If
Next cell

编辑:添加了一些额外的代码,使其更加清晰。更快的方法是将数据添加到表的末尾,然后简单地调整其大小

这里有一个例子

ProjectTable.Resize Range("$A$1:$E$" & lRow)

其中
lRow
是新的最后一行

您是否尝试过先将数据添加到表的末尾,然后再将该范围添加到表的范围中?如果您的表中有计算单元格,则每次添加新项目时,都会导致所有计算单元格再次计算的速度减慢。我建议您在执行代码时打开计算和屏幕更新
Application.calculation=xlCalculationManual
Application.screenupdate=False
(并在代码末尾设置为
xlCalculationAutomatic
True
)我在工作表中不使用自动计算。谢谢你的评论;)奇怪的是,我似乎也注意到,工作簿打开的时间越长(或者Excel[2007]已经打开),情况就越糟。当我从头开始运行它时,它似乎更快。记忆问题???再次非常感谢Siddharth,我会试试这个。