VBA中Range对象单列自动填充出现类型不匹配错误,求助
问题解决:VBA自动填充Range列时的类型不匹配错误
错误原因
你代码里的rng(1 & ":" & rng.rows.Count, "A")写法错误,这种字符串拼接方式无法正确返回Range对象,导致AutoFill方法接收的参数类型不匹配,触发错误。另外VBA里尽量避免用Select/Selection,直接操作Range对象更高效且不易出错。
修正后的代码
Sub Macro1() Dim wk As Worksheet Set wk = ActiveWorkbook.Sheets("Temp") wk.Cells.Clear Dim rng As Range Set rng = wk.Range("A1:B5") ' 给A1赋值(如果是公式,直接写公式即可,比如rng.Cells(1, 1).Formula = "=ROW()") rng.Cells(1, 1) = 1 ' 直接指定源区域和目标区域,无需Select rng.Cells(1, 1).AutoFill Destination:=rng.Columns(1) End Sub
公式填充示例
如果A1是公式(比如要填充行号),只需要修改赋值部分为公式即可:
' 示例:填充行号公式 rng.Cells(1, 1).Formula = "=ROW()" rng.Cells(1, 1).AutoFill Destination:=rng.Columns(1)
关键说明
rng.Columns(1)直接获取rng对象里的第一列(也就是A1:A5),是符合要求的Range类型参数。- AutoFill的源区域必须是目标区域的一部分,且两者要在同一列/行,这是Excel自动填充的基础规则。
内容的提问来源于stack exchange,提问作者Thedudeabides
相关产品推荐
相关产品推荐

