Excel vba中怎样填写数值改变单元格后触发事件

如题所述

假设要判断的值在A1,改变单元格后触发事件窗口填写代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$B$1" And [A1].Value > [B1].Value Then   

Target.Interior.ColorIndex = 3Else    

Target.Interior.ColorIndex = xlNone

End If

End Sub

注意一般加个IF来判断当前单元格量是否是指定的单元格,就是执行代码。

扩展资料:

vba中可以触发不同事件的命令:

Publicr/ Private] Const  常量名[As  类型]=表达式

Global Const 符号常量名称 = 常量值,定义一个符号常量,并将指定表达式的值赋给符号常量。 

常量名指定符号常量的名字。符号常量名可以由字母、数字和下划线组成,但只能以字母开头,不能含有空格,表达式指定符号常量的值。该表达式通常由数值型、字符型、逻辑型或日期型数据以及各种运算符组成,但在表达式中不能出现变量和函数。 

public用来表示这个常量的作用范围是整个数据库的所有模块。 

private则表示这个常量只在使用该声明常量语句的模块中起作用。

说明:

1、除用户定义的符号常量外,VBA还提供了许多符号常量,我们可以直接使用。

2、对数码比较长,并且在程序中多次使用的常量,通常使用符号常量代替。运行程序时,系统自动把程序中的所有符号常量换为赋给它的值。

参考资料来源:百度百科—VBA

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-09

假设要判断的值在A1,则代码为:

Dim oldval
Private Sub Worksheet_Activate()
    oldval = [a1]
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    If oldval <> [a1] Then
        oldval = [a1]
        '在此输入操作代码
    End If
End Sub

第2个回答  2015-10-23
1,按F9刷新数据,即便A1数据变了,也不能触发该事件;
2,选中其他单元格,即便A1数据变了,也不能触发该事件;
3,选中A1,B1没变动一次,都会触发该事件,而不管A1的值是不是改变了。
第3个回答  推荐于2017-09-12

下列代码,粘贴在工作表代码窗格中

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
    '你的代码语句
Application.EnableEvents = True
End Sub

本回答被提问者和网友采纳
第4个回答  2015-04-13
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
代码。。。
End Sub
相似回答