只有一行时应用自动填充方法的Vba代码

只有一行时应用自动填充方法的Vba代码,vba,excel,Vba,Excel,如果有超过1行,下面代码段的自动填充方法可以正常工作,但失败,如果只有1行,则会出现运行时错误1004,请建议进行所需的更改 Lastrow = ws3.Cells(Rows.Count, "B").End(xlUp).Row ws1.Range("A2").FormulaR1C1 = _ "=TEXT(RC[6],""000000000000"")&""-""&TEXT(RC[7],""0000"")" ws1.Range("A2").AutoFill Destinat

如果有超过1行,下面代码段的自动填充方法可以正常工作,但失败,如果只有1行,则会出现运行时错误1004,请建议进行所需的更改

Lastrow = ws3.Cells(Rows.Count, "B").End(xlUp).Row
ws1.Range("A2").FormulaR1C1 = _
    "=TEXT(RC[6],""000000000000"")&""-""&TEXT(RC[7],""0000"")"
ws1.Range("A2").AutoFill Destination:=ws1.Range("A2:A" & Lastrow), Type:=xlFillDefault

这是一个非常快速的解决方案:

lastrow = Cells(Rows.Count, "B").End(xlUp).Row
Range("A2").FormulaR1C1 = "=TEXT(RC[6],""000000000000"")&""-""&TEXT(RC[7],""0000"")"
If lastrow > 2 Then
    Range("A2").AutoFill Destination:=Range("A2:A" & lastrow), Type:=xlFillDefault
End If

总的来说,它会起作用。它会给你一个错误,因为它最后一行是
1
,它不能用它做
AutoFill

在没有自动填充的情况下,一次将公式应用于范围A2:A和lastrow更简单。范围(“A2:A”和lastrow)。公式1C1=“=TEXT(RC[6],“0000000000000”)和“-&TEXT(RC[7],“0000”)“谢谢,它可以工作:)