关于Excel中VBA函数Worksheet_Change的问题

我需要在表格中设置一个区域,在这个区域内输入的信息(或数据)要与表格中设好的G1和H1的数据比较,凡是超出这个范围或者重复的数据都不能输入和显示,我刚学习VBA,改了这段... 我需要在表格中设置一个区域,在这个区域内输入的信息(或数据)要与表格中设好的G1和H1的数据比较,凡是超出这个范围或者重复的数据都不能输入和显示,我刚学习VBA,改了这段代码,但总是不能达到我要的效果,现发贴请大师赐教(带有附件)。。。。。。。

Sub worksheet_change(ByVal target As Range)
Application.EnableEvents = False
Dim rng As Range
Dim dyg$, dd$, ll$, xx$ '定义字符串变量
dyg = Right(Range("G1"), 8)
dd = Right(Range("H1"), 8)
Set rng = Range("A1:F10")
On Error Resume Next
ll = Application.WorksheetFunction.CountIf(rng, target)
xx = Right(target.Value, 8)
If (dyg <= xx And xx <= dd) Then
If ll > 1 Then
target.ClearContents
MsgBox "数据在A1:F10中已存在"
End If
Else
target.ClearContents
MsgBox "数据超出范围,请重新输入!"
Application.EnableEvents = True
End If
End Sub
不好意思上不了附件…………我要输入的是带字母组个的数字,例如:
H14A09005928
H14A09005935
展开
 我来答
姓王的wy451

2014-10-19 · TA获得超过48.3万个赞
知道大有可为答主
回答量:8万
采纳率:78%
帮助的人:8944万
展开全部
明显的问题有:
1、代码运行条件没设定,也就是在A1:F10单元格变化时才运行代码。
2、Application.EnableEvents = True ,这句应在IF外。
追问
问题1请赐教详解,另外Application.EnableEvents = True ,这句应在IF外为什么数据重复输入没有提示,多谢详解。……………
追答
你把文件发到我的QQ邮箱,帮你修改。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式