电子表格如何实现EXCEL的自动提醒功能.
1.如何实现EXCEL的自动提醒功能.
如果你需要定期给厂商结帐,如果有无数游戏要不同时间结帐,那么,就得每天翻阅“合同”来寻找“到期”的结帐时间——实在是太麻烦了!用Excel建立一本自动定时提醒功能是不是方便得多?方法是:用Excel的IF函数嵌套TODAY函数来实现设备“到期”自动提醒。
只要是涉及日期的都可以轻松的设置。
然后,选中图1所示“提示栏”下的F2单元格,点击插入菜单下的函数命令,在“插入函数”对话框中选择“逻辑”函数类中的IF函数,点击[确定]按钮,就会弹出“函数参数”对话框,分别在Logical_test行中输入E2=TODAY()、value_if_true行中输入“到期”、Value_if_false行中输入“"
"”,并点击[确定]按钮。这里需要说明的是:输入的 ""
是英文输入状态下的双引号,是Excel定义显示值为字符串时的标识符号,即IF函数在执行完真假判断后显示此双引号中的内容。为了醒目,可在“单元格属性”中将F2单元格的字体颜色设置为红色。
最后,拖动“填充柄”,填充F列以下单元格即可。
我们知道Excel的IF函数是一个“条件函数”,它的语法是“IF(logical_test,value_if_true,value_if_false)”,具体地说就是:如果第一个参数logical_test返回的结果为真,则执行第二个参数Value_if_true的结果,否则执行第三个参数Value_if_false的结果;Excel的TODAY函数[语法是TODAY()]是返回当前系统日期的函数。
实际上,本文所应用的IF函数语句为IF(E2=TODAY(),"到期",""),解释为:如果E2单元格中的日期正好是TODAY函数返回的日期,则在F2单元格中显示“到期”,否则就不显示,TODAY函数返回的日期则正好是系统当天的日期。
2.关于EXCEL提醒功能的设置?
打开Excel文档,打开需要检查的工作表,在该工作表标签上点击鼠标右键,选择“查看代码”,或者按Alt+F11组合键,打开VBA编辑窗口,输入如下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRow, xColumn, i, j, Rpt As Integer
xRow = Range("A1").CurrentRegion.Rows.Count
xColumn = Range("A1").CurrentRegion.Columns.Count
Rpt = 0
For i = 1 To xRow
For j = 1 To xColumn
If WorksheetFunction.CountIf(Range(Cells(1, j), Cells(xRow, j)) _
, Cells(i, j)) > 1 Then
Rpt = Rpt + 1
End If
Next
If Rpt = xColumn Then
MsgBox "第" & i & "行记录重复,请核对"
End If
Rpt = 0
Next
End Sub
将宏安全性设为中,重新打开文档时,选择启用“宏”即可。
该代码含义:只要你在该工作表中任何位置输入数据,即对该表所有记录进行查询,假若某两行对应列的数据完全相同的话,则报警。只要包含A1单元格所在数据区域有一个单元格内容不同,则不报警。
当然,也可只对输入数据所在行进行检查,但已存在的重复记录将查询不出,所以建议对整个工作表进行查询。
只对输入数据所在行记录进行查询,代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xRow, xColumn, i, j, Rpt As Integer
xRow = Range("A1").CurrentRegion.Rows.Count
xColumn = Range("A1").CurrentRegion.Columns.Count
Rpt = 0
'For i = 1 To xRow
i = Target.Row
For j = 1 To xColumn
If WorksheetFunction.CountIf(Range(Cells(1, j), Cells(xRow, j)) _
, Cells(i, j)) > 1 Then
Rpt = Rpt + 1
End If
Next
If Rpt = xColumn Then
MsgBox "第" & i & "行记录重复,请核对"
End If
'Rpt = 0
'Next
End Sub