Excel VBA:添加新行至表格末尾并解锁时遇运行时错误424求助
运行时错误424的原因与修复
报错根源
这个「运行时错误424:需要对象」是因为两处关键错误:
lastRow被声明为ListRow对象类型,但tbl.Range.Rows(tbl.Range.Rows.Count).Row返回的是行号(整数),用Set给对象变量赋值非对象,直接触发报错。- 整数类型的行号没有
.Locked属性,就算没报错这行代码也无法执行。
修复后的代码
直接在添加新行时获取该行的ListRow对象,再操作其单元格区域的锁定属性:
Sub AddRowToTable() Dim ws As Worksheet Dim tbl As ListObject Dim newRow As ListRow Set ws = ActiveSheet Set tbl = ws.ListObjects("Table1") ' 添加新行并直接获取该行对象 Set newRow = tbl.ListRows.Add ' 解锁新行的所有单元格(仅当工作表处于保护状态时,Locked属性才会生效) newRow.Range.Locked = False End Sub
额外提示
如果工作表处于保护状态,需要确保保护设置允许编辑解锁区域;若只是单纯解锁行,上述代码即可解决报错并完成需求。
内容的提问来源于stack exchange,提问作者Mohamad Bachrouche
相关产品推荐
相关产品推荐

