Excel精英培训网

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

[已解决]如何实现人工录入时动态提醒

[复制链接]
发表于 2017-4-12 13:48 | 显示全部楼层 |阅读模式
本帖最后由 kurtlei 于 2017-4-12 13:49 编辑

请各位大侠帮忙!用VBA实现, 谢谢了

1. C列中的数值是在不间断的增加,只要新增输入一个值,和原来C列中的值没有重复(即首次录入),则背景色为绿色,如果新增数值与原来的C列中值有重复,且重复次数为2次,则新增值与原先相同值的单元格背景色都变为原始的无色(原始单元格的颜色),如果重复次数为3次以上(包含三次),则新增值与原先相同值的单元格背景色都为红色

2.D列中的数值也在不间断的增加,新增输入一个值,新增数值所在行C列数值在C列首次出现(首次指按行从上到下),则D列新增值的单元格背景色显示为绿色,如果新增数值(D列)同行的C列数值在C列二次重复出现,其上次出现的相同C列值的同行D列值与D列新增值相同,则新增D列值与上次出现的相同C列值的同行D列值的背景色都为白色(有点绕口)



114221xbraoxo71zfo2071.jpg



最佳答案
2017-5-10 09:22
附件你再试下,注意先把数据扩展区域的勾选取消。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-4-13 10:33 | 显示全部楼层
注意高版本EXCEL会自动添加格式,比如上个单元格是红色的话,下个单元格也有可能会被自动设置成红色。
这个功能应该可以关闭,但我懒得找。
我想说的是结果如果不正确的话不是我代码的原因。
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Count > 1 Then Exit Sub
  3. If Target.Row = 1 Then Exit Sub
  4. Dim i&, n&, s$, brr
  5. If Target.Column = 3 Then
  6.   For i = 2 To Target.Row - 1
  7.     If Cells(i, 3) = Target Then s = s & "," & i
  8.   Next i
  9.   If s = "" Then Target.Interior.Color = vbGreen: Exit Sub
  10. ElseIf Target.Column = 4 Then
  11.   For i = 2 To Target.Row - 1
  12.     If Cells(i, 3) = Target.Offset(, -1) Then s = s & "," & i
  13.   Next i
  14.   If s = "" Then Target.Interior.Color = vbGreen: Exit Sub
  15. End If
  16. brr = Split(s, ",")
  17. If UBound(brr) = 1 Then
  18.   Cells(brr(1), Target.Column).Interior.Pattern = xlNone
  19. Else
  20.   For i = 1 To UBound(brr)
  21.     Cells(brr(i), Target.Column).Interior.Color = vbRed
  22.   Next i
  23.   Target.Interior.Color = vbRed
  24. End If
  25. End Sub
复制代码

回复

使用道具 举报

 楼主| 发表于 2017-4-14 09:41 | 显示全部楼层
大灰狼1976 发表于 2017-4-13 10:33
注意高版本EXCEL会自动添加格式,比如上个单元格是红色的话,下个单元格也有可能会被自动设置成红色。
这 ...

谢谢大侠出手帮忙

在Excel2016下测试的,确实出现大侠提到的情况(单元格式自动添加),如下第一张图片
无标题.jpg

另外我把下图中数字2改为3时,含2和3的单元格未变为白色
无标题2.jpg


单元格自动添加开关我没有找到,是不是就是选中整列(C列),单击右键,然后再选中设置单元格格式....? 有点复杂,请问大侠能否实现VBA自动设置单元格格式添加取消,运行完之后再解除?

手边无低版本的Excel ,暂未测试

再次深表感谢!


回复

使用道具 举报

发表于 2017-4-14 10:27 | 显示全部楼层
我百度到的:在工具→选项→编辑中,不勾选“扩展数据区域格式及公式”
我的2010日文版内没有找到相应的设置,你自己找找看吧。
回复

使用道具 举报

 楼主| 发表于 2017-4-14 13:21 | 显示全部楼层
谢谢大灰狼1976 大侠的帮助
工具→选项→编辑中这句我昨天也百度到了,但Excel2016没有

能直接编程实现 不勾选“扩展数据区域格式及公式”?
回复

使用道具 举报

发表于 2017-4-15 16:17 | 显示全部楼层
2010和2013版已找到,在文件、选项、高级,有个扩展数据区域格式及公式复选框,取消勾选就行了。
2016版没用过,应该差不多,你试试。
回复

使用道具 举报

 楼主| 发表于 2017-4-17 09:38 | 显示全部楼层
大灰狼1976 发表于 2017-4-15 16:17
2010和2013版已找到,在文件、选项、高级,有个扩展数据区域格式及公式复选框,取消勾选就行了。
2016版没 ...

谢谢大侠帮忙
如大侠所说,Excel2016 与2010 一样 文件、选项、高级,有个扩展数据区域格式及公式复选框,能取消勾选扩展数据区域格式及公式

测试还有两个问题,这两个问题可能是我没有表达清楚有关

1. 我顶楼的第二项要求应该出现是下图这两种
无标题3.jpg


实际当前测试为
无标题4.jpg


2. 在三楼提到过
下图中数字2改为3时,含2和3的单元格背景色未变为白色
无标题2.jpg




遇到高版本的Excel可否程序实现取消勾选扩展数据区域格式及公式,动作完之后恢复勾选?
谢谢大侠帮忙

回复

使用道具 举报

发表于 2017-4-17 15:17 | 显示全部楼层
今天没时间,明天我看下
回复

使用道具 举报

发表于 2017-4-19 11:57 | 显示全部楼层
修改扩张区域的代码,Application.ExtendList = True或者False。这是我录制宏得到的。
至于其他修改,我现在没时间细看,你可以试着自己改改看。
回复

使用道具 举报

发表于 2017-4-19 14:32 | 显示全部楼层
本帖最后由 大灰狼1976 于 2017-4-19 14:41 编辑

关于D列还有一些不明白的地方,附件为确认用的示例,请说明一下。

aaa.zip

8.08 KB, 下载次数: 2

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 16:04 , Processed in 0.418308 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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