You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:55:09