VBA运行时错误'424'(对象要求)修复方案咨询
修复VBA运行时错误'424'(对象要求)
错误原因分析
你的代码存在三个核心问题触发报错:
LastRowTwo未赋值,默认值为0,导致生成B2:B0这种无效单元格范围TargetRange声明为Variant,直接赋值会变成单元格值数组而非Range对象,With语句要求操作对象类型变量- 公式字符串的引号语法错误,末尾多了一个多余的双引号
修复后的代码
Dim LastRowTwo As Long, TargetRange As Range, ws As Worksheet Set ws = Sheets("Reconciliation") ' 获取A列最后一行有数据的行号(也可根据实际需求改为B列) LastRowTwo = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 用Set关键字将Range对象赋值给TargetRange Set TargetRange = ws.Range("B2:B" & LastRowTwo) With TargetRange ' 修正公式的引号错误 .Formula = "=IFERROR(VLOOKUP(A2, 'ATP Final'!$G:$G, 1, FALSE), ""N/A"")" .Value = .Value End With
关键修复点说明
- 给
LastRowTwo赋值:通过End(xlUp)定位到列中最后一行数据,确保生成有效的单元格范围 - 修正
TargetRange的声明与赋值:改为Range类型,VBA中对象类型变量必须用Set关键字完成赋值 - 修正公式引号:删除原公式末尾多余的双引号,保证公式语法合法
内容的提问来源于stack exchange,提问作者Jonnyboi
相关产品推荐
相关产品推荐

