excel vba 删除制定条件的整行代码 哪里出错?
B列单元格表示时间有2012-12-31和2013-12-31。我要删除2012-12-31的,我吧2012-12-31复制到了C1单元格subsc()dimxrowas...
B列单元格表示时间 有2012-12-31 和2013-12-31。我要删除2012-12-31的,我吧2012-12-31复制到了C1单元格
sub sc()
dim xrow as range
for each xrow in range("B1:B100")
if xrow.value=range("C1").value then
xrow.entirerow.delete
end if
next
end sub
为什么执行之后还有好多2012-12-31的? 是程序哪里出问题了么? 展开
sub sc()
dim xrow as range
for each xrow in range("B1:B100")
if xrow.value=range("C1").value then
xrow.entirerow.delete
end if
next
end sub
为什么执行之后还有好多2012-12-31的? 是程序哪里出问题了么? 展开
2个回答
展开全部
不能用foreach,你删除完后面的又接上了。用for就好了。
sub sc()
dim xrow as range
for i=100 to 1 step -1
if cells(i,"B")=range("C1") then
cells(i,"B").entirerow.delete
end if
next
end sub
更多追问追答
追问
什么叫做删除完后面的又接上了? 不太懂
追答
比如说,你的B2和B3都满足条件,第2行,第3行都是要删除的。
程序执行到b2的时候,把第2行删了,然后,B3就变B2了,但是,你foreach里面,已经跳到B3了。
本来应该被删除的B3现在就变成B2了,删除不了了~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询