|
我是新人,刚接触VBA,我在运行这个程序后,在操作批量填充或者批量删除单元格值时,总是显示错误类型13,点击调试后,错误语句为红色字体语言,望有高人指点。
Public Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Value="验证" Then
Target.Offset(, -1) = Now
End If
End Sub
本帖最后由 suye1010 于 2012-12-21 13:22 编辑
tianqixueyu 发表于 2012-12-21 10:51
我想问问,我之前的这个错误产生的原因是什么?我试过只要不加后面的AND就不会错误。
批量操作时候,你选择的Target是多个单元格,当进行Target.Value运算时他生成的也是一个数组,而数组是不能直接与单个值 ,即 "验证"来进行判断的,所以或报类型不匹配的错误。如果你要批量操作,试试下面的代码 - Option Explicit
- Public Sub Worksheet_Change(ByVal Target As Range)
- Dim rng As Range
- If Target.Column = 2 Then
- Application.EnableEvents = False
- For Each rng In Target
- If rng.Value = "验证" Then
- rng.Offset(, -1) = Now
- Else
- rng.Offset(, -1) = ""
- End If
- Next
- Application.EnableEvents = True
- End If
- End Sub
复制代码
|
|