设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2295|回复: 8
打印 上一主题 下一主题

[求助]一段代码,怎么试都不对,大大帮忙看看

[复制链接]
跳转到指定楼层
1#
发表于 2007-3-13 08:41:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在EXCEL里面做了一张表,想得到如下效果,F2栏为OK,即保留,F3栏NO,即删除,所以写下了这此代码

sub macro1()

for i = 1 to 100

if cells(i, 1).value = no then rows(i).delete

next

end sub

但是怎么都不对啊,那位大大帮手看看怎么回事,我刚学VB,什么都不懂

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-3-13 17:04:00 | 只看该作者
sub macro1()

for i = 1 to 100

if cells(i, 1).value = no then rows(i).delete :i=i-1

next

end sub
3#
发表于 2007-3-13 19:58:00 | 只看该作者
sub macro1()

for i = 100 to 1 step -1

if cells(i, 1).value = no then rows(i).delete

next

end sub
4#
 楼主| 发表于 2007-3-13 22:31:00 | 只看该作者
以上2位大大的代码都不对啊,还是删不掉,可能是我理解错误,现附上表,请大大帮忙看看

sheet1中会输入数据,然后执行此代码,凡是OK的都不在sheet2中显示,写了NO的都在sheet2中出现,请问怎么才能做到?


[此贴子已经被作者于2007-3-13 14:33:50编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2007-3-14 17:18:00 | 只看该作者
ok或no是situation的值,应该是cells(i,6) 而不是cells(i,1)啊
6#
 楼主| 发表于 2007-3-15 00:26:00 | 只看该作者
我改了值为cells(i,6),但是还是不行啊,为什么呢。大大能否帮我改改这张表让我看看?

我改成

for i = 1 to 10

if cells(i, 6).Value = ok then rows(i).delete: i = i - 1

next

end sub

这样写了以后,发现执行了代码后就一直在循环检查,不按停止键都停不下来。
7#
发表于 2007-3-15 23:32:00 | 只看该作者
刚学这样犯错不怪你,可是以后要自己确保没有低级错误哦.

For i = 1 To 100
If Cells(i, 6).Value = "ok" Then  '"ok"才是数值,ok是逻辑值,表示该值为空时执行,用双引号!
Rows(i).Delete
End If    '你没有,这是语法错误!
Next

你运行后之所以一直循环,是因为在你的程式中Cells(i, 6).Value = ok这个条件在值为空的时候始终是满足的,所以就一直在删除;

[此贴子已经被作者于2007-3-15 16:00:18编辑过]

8#
 楼主| 发表于 2007-3-16 00:02:00 | 只看该作者
多谢z2117s指点,已经可以了,但是又有了一个新的问题,大大再帮个忙

这个代码写完了后,又出1个问题,就是没有循环,怎么写循环进去?现在是执行1次代码才削除1条,如果我的数据有100条,其中有90条要这样删除,那不要点90下执行代码?。。。。。
9#
发表于 2007-3-20 01:09:00 | 只看该作者
什么叫没有循环?

for ...next不就是循环语句吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 04:46 , Processed in 0.125118 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表