VBA中Change事件问题

VBA中Change事件问题,第1张

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count >1 Then Exit Sub

If Target.Column = 10 Then '指定只在第10列使用这个效果

If Target.Value = 1 Then '如果单元格的值等于1,

Target.Value = "生产领料" '显示为"生产领料"

ElseIf Target.Value = 2 Then

Target.Value = "非生产领料"

ElseIf Target.Value = 3 Then

Target.Value = "采购退货"

ElseIf Target.Value = 4 Then

Target.Value = "其他出库"

ElseIf Target.Value = 5 Then

Target.Value = "生产退料"

End If

End If

End Sub

要真正不触发事件,比较麻烦,需要调用API,截获该消息,其实你可以在text1_change中加条件,比如定义一个布尔型全局变量Dim isRun as Boolean在form_load 中给isRun赋直为 isRun = true

private sub text_ change()

if isRun = true then

'在这里写你要的代码

end if

end sub

然后在那个不让text1.change触发事件的sub中这样写

比如你那个sub过程名为xxx()

sub xxx()

isRun = false

'下面写你的代码

'写完你的代码后记得还原isRun的值

isRun = true '这句不能少

end sub

这样处理,我想能满足你的要求,也没必要去调用API


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11871198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存