Excel VBA代码优化,使用公式和代码添加新行

Excel VBA代码优化,使用公式和代码添加新行,excel,vba,formulas,Excel,Vba,Formulas,我是一名擅长VBA的新手。我创建了一个宏,在表的顶部插入一行,它还将从下面的行复制字体和公式。公式就是这样,它们从另一个excel文件导入数据。 但是现在我遇到了一个问题,它变得非常慢,并且闪烁,等等。我在互联网上搜索优化我的VBA代码,但是我找不到真正有用的东西 这是我的代码,我如何优化它: Sub Add_row() 'Add_row Macro Application.Calculation = xlCalculationManual Application.Screen

我是一名擅长VBA的新手。我创建了一个宏,在表的顶部插入一行,它还将从下面的行复制字体和公式。公式就是这样,它们从另一个excel文件导入数据。 但是现在我遇到了一个问题,它变得非常慢,并且闪烁,等等。我在互联网上搜索优化我的VBA代码,但是我找不到真正有用的东西

这是我的代码,我如何优化它:

Sub Add_row()
'Add_row Macro

    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False
    Application.EnableEvents = False

    Range("A4:R4").Select
    Selection.ListObject.ListRows.Add (1)
    Range("A5:A8").Select
    Range("A8").Activate
    Selection.AutoFill Destination:=Range("A4:A8"), Type:=xlFillDefault
    Range("A4:A8").Select
    Range("B5:I5").Select
    Selection.AutoFill Destination:=Range("B4:I5"), Type:=xlFillDefault
    Range("B5:I5").Select
    Range("J5:R5").Select
    Selection.AutoFill Destination:=Range("J4:R5"), Type:=xlFillDefault
    Range("J5:R5").Select
    ActiveWindow.SmallScroll Down:=-2

    'Application.Calculation = xlCalculationAutomatic

    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True
    Application.EnableEvents = True

End Sub

谢谢你

我不明白你为什么需要超出
范围(“A4:R4”)。ListObject.ListRows.Add位置:=1
。这将在表的顶部插入一个新行,填充所有公式,同时将所有键入的常量留空。我尝试了:Range(“A4:R4”).ListObject.ListRows.Add Position:=1它在顶部添加一行,但不会从下面的行复制所有公式。如果我能在这里附上一张照片,你就能看得更清楚