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

时间:2014-09-16 08:43:36

标签: excel vba excel-vba

每次我的代码找到要添加的新值时,我都会向表中添加一个新行 我用于此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

编辑:添加了一些额外的代码,以便更清晰

1 个答案:

答案 0 :(得分:2)

更快的方法是将数据添加到表的末尾,然后简单地调整大小。

这是一个例子

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

lRow是新的最后一行