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

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来判...

Excel vba中怎样填写数值改变单元格后触发事件
右击你要判断的工作表,查看代码。将下面几段代码复制进去 当你改变单元格就会弹出提示数值被改变 Dim a Private Sub Worksheet_SelectionChange(ByVal Target As Range)a = Target.Value End Sub Private Sub Worksheet_Change(ByVal Target As Range)If a <> Target.Value Then MsgBox "单元格数值...

单元格值变化触发宏?
首先,在VBA编辑器中,可以通过在"Microsoft Excel Objects"下右键单击工作簿名称,然后选择"插入"->"模块",来新建一个模块。然后,在新建的模块中输入以下代码:Private Sub Worksheet_Change(ByVal Target As Range)' 判断是否更改的是A4:C4单元格 If Intersect(Target, Range("A4:C4")) Is Nothi...

需要在EXCEL中实现:A1中输入数值后,在B1中自动生成当前时间,随着A1的...
工具→选项→重新计算→勾选迭代计算→最多迭代次数改为1→确定→在b1输入公式:=if(cell("address")="$a$"&row(),text(now(),"yyyy-m-d h:m"),b1)→回车,在c1输入公式:=if(cell("address")="$a$"&row(),text(now(),"yyyy-m-d h:m"),c1)→回车,在d1输入公式:=if(cell(...

EXCEL VBA Calculate事件的触发方法
首先对固定的单元格区域命名,例如命名为:testarea 然后在某个角落不会使用到的单元格中(例如a65536)程序将会填入公式“=SUM(testarea)”,并与之前的求和值(存放在单元格a65535中)做比较,如果不同,表明区域的数值有变化。然后在Calculate事件中作如下判断:Private Sub Worksheet_Calculate()Range(...

excel vba中的按回车激发事件的代码怎么写?
2012-06-12 有关Excel中Enter键按键事件的问题,只想对定指的表起... 1 2014-02-10 【excel中】如何在textbox1中按键盘上"ENTER... 1 2011-05-08 在VBA中,假设在A1单元格输入一个数字,然后回车,就启动一... 5 2015-04-13 Excel vba中怎样填写数值改变单元格后触发事件 7 2008-01-24 如何使...

excel 两个表格中有相同的单元格,如何实现更改任一单元格数值后另一...
用VBA就是通过两者以外加公式可以做到两个格互相同步的,只可以表1修改,表2变一样,或是表2修改,表1变一样,两者选一。

Excel Vba 如何将单元格的值,同步显示在窗体中的LABEL或TEXTBOX中?
1、首先,在电脑中找到并打开Excel,在工具栏找到开发工具。2、然后,在开发工具栏下点开VisualBasic。3、然后,使用lable控件来来显示变量内容,接着双击按钮1进入按钮1的代码编写。4、在按钮1中输入:UserForm1.Label1.Caption = a。5、然后,回到form,点击运行窗体。6、最后,lable位置发生了变化,...

请教各位老师:如图所示,单元格触发事件,用VBA怎样循环复制粘贴写代码...
1、“触发D17—D20的单元格时”具体到什么程度。如果第一次你将C17单元格连续变动5次,是不是要将“项目1”的1~5月的数据(C22~G23)全部填写?还是每次D17~D20四个单元格全部变动一次才能对C22~N29区域进行编写?如果是后者比较难实现,因为如果4个数据只变了3个,就没有办法判断本次变动是否...

Excel表格怎么输入数据自动排序
编制一个排序的VBA程序。再写一个时间触发的程序来调用该排序程序。时间触发就是在约定的单元格,只要有数据变化就启动该事件。举例说明:例如有一张明细表如图:另有一张汇总表如图:现在要编制二个宏。一个是对汇总表进行排序。一个是当明细表有数据变更时,触发该排序的程序。排序的代码如下:Sub ...

相似回答