Excel 自动填充VBA行中的下一个数字

Excel 自动填充VBA行中的下一个数字,excel,vba,excel-formula,Excel,Vba,Excel Formula,我有下面的VBA,它正在填充行中的下一个数字。但是它有一个问题,当它自动填充下一个数字时,我不断地得到一个错误。数据在表中,我得到的错误是: 表格以第2行的一行开始。我在H2中输入数据,它填充得很好,但错误显示,我对第3行做了相同的操作,然后再次填充得很好。然后我做第4行,公式开始复制第3行的值,然后我输入第5行,它复制第3行的值。我在I3中遇到的错误是 公式引用空单元格 我追踪它,它说H2是空的(不是) 代码: Private Sub Worksheet_Change(ByVal Target

我有下面的VBA,它正在填充行中的下一个数字。但是它有一个问题,当它自动填充下一个数字时,我不断地得到一个错误。数据在表中,我得到的错误是:

表格以第2行的一行开始。我在H2中输入数据,它填充得很好,但错误显示,我对第3行做了相同的操作,然后再次填充得很好。然后我做第4行,公式开始复制第3行的值,然后我输入第5行,它复制第3行的值。我在I3中遇到的错误是

公式引用空单元格

我追踪它,它说H2是空的(不是)

代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, cel As Range
    Set rng = Intersect(Target, Range([H2], Cells(Rows.Count, "H").End(xlUp)))

    If rng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    For Each cel In rng.Offset(, 1)
        cel.FormulaR1C1 = "=IF(RC[-1]<>"""",R1C[6] & ""-"" &" & _
            "TEXT(COUNTA(R2C[-1]:RC[-1]),""0000"") & ""-"" & R1C[7],"""")"
    Next

    Application.EnableEvents = True
End Sub
Private子工作表\u更改(ByVal目标作为范围)
变暗rng As范围,cel As范围
设置rng=Intersect(目标,范围([H2],单元格(Rows.Count,“H”)。结束(xlUp)))
如果rng为空,则退出Sub
Application.EnableEvents=False
对于每个单元,单位为rng.偏移量(,1)
cel.FormulaR1C1=“=IF(RC[-1]”,R1C[6]&“-&”和_
“文本(COUNTA(R2C[-1]:RC[-1]),”“0000”“,”“R1C[7],”“”
下一个
Application.EnableEvents=True
端接头
有人能帮忙修复这个错误吗


谢谢

我无法复制你的问题。如果我使用您的代码并开始在H列中向下输入数据,它将开始在I列中写入
-0001-
-0002-
等等。我无法在这些公式中产生错误,即使我清空H2,它也只会从I2中删除计数数,并从I3开始计数。请注意,对于每个循环,您可以使用
rng.Offset(,1).FormulaR1C1=“=if(RC[-1]”,R1C[6]&“-&”和“TEXT”(COUNTA(R2C[-1],“0000”)&“-&R1C[7],”)一步完成此操作
感谢您检查并提供更新。我现在注意到代码在表外工作。我一把它放进桌子里,它就会做上面的事。谢谢你的调查!在“表”中,您必须修改代码,以针对ListObject中的范围工作。