范围类的excel vba删除方法失败
我试图运行一段代码,从列“OG Row”“x”所在的表中删除选定行。我可以手动删除行,但是当我运行代码时,我得到了这个错误“删除range类的方法失败” tblAlloc.ListRows中每行的范围类的excel vba删除方法失败,excel,vba,Excel,Vba,我试图运行一段代码,从列“OG Row”“x”所在的表中删除选定行。我可以手动删除行,但是当我运行代码时,我得到了这个错误“删除range类的方法失败” tblAlloc.ListRows中每行的 如果Row.Range(1,tblAlloc.ListColumns(“OG Row”).Index.)值为“x”,则 如果rngToDelete为空,则 设置rngToDelete=Row.Range(1,1).EntireRow 其他的 设置rngToDelete=Union(rngToDelet
如果Row.Range(1,tblAlloc.ListColumns(“OG Row”).Index.)值为“x”,则
如果rngToDelete为空,则
设置rngToDelete=Row.Range(1,1).EntireRow
其他的
设置rngToDelete=Union(rngToDelete,行范围(1,1).EntireRow)
如果结束
如果结束
下一排
删除
为什么不删除标识的行?首先在一个不连续的范围内收集它们有什么好处?@teylyn我尝试了两种方法,但两种方法都不起作用,即删除已标识的每一行,从底部而不是顶部处理范围。“不工作”很难排除故障。工作表是否受保护?它们都给出相同的错误“删除范围类的方法失败”。工作表未受保护,我无法手动删除行
For Each Row In tblAlloc.ListRows
If Row.Range(1, tblAlloc.ListColumns("OG Row").Index).Value <> "x" Then
If rngToDelete Is Nothing Then
Set rngToDelete = Row.Range(1, 1).EntireRow
Else
Set rngToDelete = Union(rngToDelete, Row.Range(1, 1).EntireRow)
End If
End If
Next Row
rngToDelete.Delete