关于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 展开
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 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询