Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2949|回复: 4

[已解决]为什么exit sub没有退出程序

[复制链接]
发表于 2016-8-7 16:55 | 显示全部楼层 |阅读模式
我是菜鸟。学着写了一个很简单的出入库自动扣减的代码。
在target.count数不等于1 的时候,我是写了退出程序的,但不知道为什么这个代码仍然执行了出库的扣减操作。
if target.count <>1 then exit sub  怎么没有效果?
请各位高手帮忙看看!
谢谢
最佳答案
2016-8-7 17:12
你用的是Worksheet_Change事件,当多个单元格的值同时改变时Target.Count的值才大于1,如果你同时选择了多个单元格,但是只改变了一个单元格的值,Target.Count=1,如果同时选择了多个单元格,并且输入数值时用Ctrl+Enter同时在多个单元格中输入数值,Target.Count>1
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2016-8-7 16:56 | 显示全部楼层
代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    If Target.Row > Cells(Rows.Count, 1).End(3).Row Then Exit Sub
    If Target.Column <> 2 Then Exit Sub
    If Target.Count <> 1 Then Exit Sub  
    If Target.Value = "" Then Exit Sub
    Set rng = Sheet2.Columns("a").Find(Target.Offset(0, -1))
   
If rng.Offset(0, 1).Value < Target.Value Then
MsgBox "库存不足!" & Chr(13) & "出库数量大于当前库存数量!"
Target.ClearContents
Else
rng.Offset(0, 1) = rng.Offset(0, 1) - Target.Value
End If
End Sub
回复

使用道具 举报

 楼主| 发表于 2016-8-7 16:57 | 显示全部楼层
附件在这里

exit sub.rar

8.63 KB, 下载次数: 7

回复

使用道具 举报

发表于 2016-8-7 17:12 | 显示全部楼层    本楼为最佳答案   
你用的是Worksheet_Change事件,当多个单元格的值同时改变时Target.Count的值才大于1,如果你同时选择了多个单元格,但是只改变了一个单元格的值,Target.Count=1,如果同时选择了多个单元格,并且输入数值时用Ctrl+Enter同时在多个单元格中输入数值,Target.Count>1
回复

使用道具 举报

 楼主| 发表于 2016-8-7 17:17 | 显示全部楼层
liyh67 发表于 2016-8-7 17:12
你用的是Worksheet_Change事件,当多个单元格的值同时改变时Target.Count的值才大于1,如果你同时选择了多个 ...

哦,原来如此啊!
又学到了一个知识点,谢谢老师的讲解!
慢慢积累!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 13:33 , Processed in 0.207051 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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