excel vba问题,我写好的下面的宏为什么一执行就卡住呢?

只写了一半一实验就不行了,简单描述下,我首先想删除第13列为TM的行,然后根据具体日期想删除第十三列为CA和MH的行,到底哪里的原因不能执行,请高手帮忙!Subcode(... 只写了一半一实验就不行了,简单描述下,我首先想删除第13列为TM的行,然后根据具体日期想删除第十三列为CA和MH的行,到底哪里的原因不能执行,请高手帮忙!
Sub code()
Dim i%, v%,a,
For i = 1 To 1000
If Cells(i, 13) = "TM" Then
Rows(i).Delete
i = i - 1
End If
Next
a=inputbox("输入前一天日期“,,0)
For v = 1 To 800
If Cells(v, 13) = "CA" OR CELLS(v,13)="MH" Then
Rows(v).Delete
End If
v = v - 1
Next
End Sub
请忽略a=inputbox("输入前一天日期“,,0)
我把这行删掉,同样也不能执行
展开
 我来答
ExcelPower
2013-11-01 · 专业Excel公式图表数据分析VBA
ExcelPower
采纳数:4495 获赞数:11862

向TA提问 私信TA
展开全部
你定义的a没有用到

Sub code()
Dim i%, v%, a
For i = 1000 To 1 step -1
If Cells(i, 13) = "TM" Then
Rows(i).Delete
End If
Next
a = InputBox("输入前一天日期", , 0)
For v = 800 to 1 step -1
If Cells(v, 13) = "CA" Or Cells(v, 13) = "MH" Then
Rows(v).Delete
End If
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风之疯子
2013-11-01 · TA获得超过358个赞
知道小有建树答主
回答量:539
采纳率:0%
帮助的人:324万
展开全部
如果第一行就是你要删除的行呢?就会出错,i、v就会变成0,导致出错,改成从最大行开始往上执行吧
Sub code()
Dim i%, v%,a,
For i = 1000 To 1
If Cells(i, 13) = "TM" Then
Rows(i).Delete
End If
Next
a=inputbox("输入前一天日期“,,0)
For v = 800 To 1
If Cells(v, 13) = "CA" OR CELLS(v,13)="MH" Then
Rows(v).Delete
End If
Next
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莱昂纳德_欧拉
2013-11-01 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7254
采纳率:0%
帮助的人:1亿
展开全部
从下往上找,这样就不会造成删除行引起的行号变化
For i = 1 To 1000
If Cells(1001-i, 13) = "TM" Then
Rows(i).Delete
End If
Next
下面也这么改,i=i-1这个不要,容易造成死循环
另外一段类似
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pxiceplay
2013-11-01 · TA获得超过1.9万个赞
知道大有可为答主
回答量:4881
采纳率:50%
帮助的人:5142万
展开全部
下一段的v=v-1应该放到end if前面吧?
要不你这就是不论是否删除v行,v始终减1,每次都是在第一行执行,成了死循环。
另外你那个a输入了有啥用?没看出来……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hwjljf
2013-11-01 · TA获得超过217个赞
知道小有建树答主
回答量:388
采纳率:100%
帮助的人:219万
展开全部
其实我不知道你说的不行是什么意思?没有表述清楚!
另外我说一个我的习惯,我一般整行删除的话,是由最下面那行开始的,就是:
FOR i = 1000 TO To 1 Step -1
.....

next
这样比较不容易乱,我个人意见而已,
你“a=前一天日期”这个变量好像在后面的过程中都没有用到!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式