代码之家  ›  专栏  ›  技术社区  ›  Patrick Bender

Excel VBA自动填充故障

  •  0
  • Patrick Bender  · 技术社区  · 6 年前

    我想将公式自动填充到最后一行。 如果我只选择一列,它可以正常工作,但如果我选择一个包含行和列的较大范围,函数不会填充第一行或第一列。有人知道为什么吗?

    第一个代码段的工作方式与预期的一样:

    If Not Intersect(Target, Range("V1")) Is Nothing Then
        wsPlan.Range("V4").Formula = "=IFERROR(INDEX(Data!$I:$I,MATCH(VALUE(ROW()&V$2),Data!$A:$A,0)),"""")"
        Range("V4").AutoFill Destination:=Range("V4:V" & Range("E" & Rows.Count).End(xlUp).Row)
    End If
    

    If Not Intersect(Target, Range("V1")) Is Nothing Then
        wsPlan.Range("V4").Formula = "=IFERROR(INDEX(Data!$I:$I,MATCH(VALUE(ROW()&V$2),Data!$A:$A,0)),"""")"
        Range("V4").AutoFill Destination:=Range("V4:X" & Range("E" & Rows.Count).End(xlUp).Row)
    End If
    
    1 回复  |  直到 6 年前
        1
  •  3
  •   user4039065 user4039065    6 年前

    一次写出所有的公式。自动填充不能很好地处理双向填充。

    If Not Intersect(Target, Range("V1")) Is Nothing Then
        with wsPlan
            'write all of the formulas into V:X
            .Range(.cells(4, "V"), .cells(.rows.count, "E").end(xlup).offset(0, 19)).Formula = _
                "=IFERROR(INDEX(Data!$I:$I, MATCH(VALUE(ROW()&V$2), Data!$A:$A, 0)), text(,))"
        end with
    End If
    
    推荐文章