VBA代码获取表格最后一行报错:Worksheet对象的Range方法执行失败
错误原因与修复方案
核心问题
你代码里的这一行是错误根源:
LastRow = .Range("F6:F" & LastRow).End(xlUp).Row + 1
执行这行时LastRow还未被赋值,属于未初始化的变量,拼接后生成的Range地址是F6:F,这是无效的单元格引用,直接触发了"Method range of object worksheet failed"错误。
修复步骤
要正确获取F列的最后一行,应该从工作表F列的最底部单元格开始向上查找,替换成以下写法:
修正后的完整代码片段
With Rep .Unprotect ("000") ' 先获取F列最后一个非空行的行号 LastRow = .Cells(.Rows.Count, "F").End(xlUp).Row + 1 .Range("$C$6:$Z$6").AutoFilter .Protect Password:="0000" Me.CbInvStore.Value = .Cells(LastRow - fw2, "C") 'inv_store Me.Lbl_typ.Caption = .Cells(LastRow - fw2, "E").Value Me.TbInvNo.Value = Format(.Cells(LastRow - fw2, "F").Value, "00000") End With
额外注意点
- 确保
fw2变量已经被正确赋值,否则后续引用LastRow - fw2可能会出现行号越界的错误。 - 工作表解锁密码是
"000",锁定密码是"0000",如果这是笔误请自行修正。
内容的提问来源于stack exchange,提问作者Mohamed Amin
相关产品推荐
相关产品推荐

