填写 VBA

Fill down in VBA

我想插入一个新列,粘贴一个公式,然后将该公式向下填充到 A 列中数据的末尾。除了向下填充程序之外,我已经完成了所有工作。它只是在到达偏移量时失败。在 VBA 中有没有办法做到这一点?任何帮助将不胜感激!

Sub Macro3()

Sheet7.Columns("B:B").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Sheet7.Cells(1, 2).Value = "Reason Code"
Sheet7.Cells(2, 2).Value = "=INDEX(ImportsFromMasterData!$B:B,MATCH(Imports!$A:A,ImportsFromMasterData!$A:A,0))"

Sheet7.Range("B2").Select
Selection.AutoFill Destination:=Range(Range("B2"), Range(Range("A2").End(xlDown)).Offset(, 2)), Type:=xlFillDefault

End Sub
Sub Macro3()

    With Sheet7

        .Columns("B:B").Insert Shift:=xlToRight, _
                        CopyOrigin:=xlFormatFromLeftOrAbove

        .Cells(1, 2).Value = "Reason Code"

        .Range(.Cells(2, 2), .Cells(Rows.Count, 1).End(xlUp).Offset(0, 1)).Formula = _
           "=INDEX(ImportsFromMasterData!$B:B," & _
           "MATCH(Imports!$A:A,ImportsFromMasterData!$A:A,0))"
    End With

End Sub

Selection.Autofill 不是实现此目的的非常有效的方法,但要使其正常工作,请将您的自动填充行调整为:

Selection.AutoFill Destination:=Range(Range("B2"), Range("A2").End(xlDown).Offset(0, 1))

这只是您构建用于目的地的范围的方式不起作用。要调试此类错误,请尝试使用您的即时 window 并检查您创建的范围的地址。