Excel精英培训网

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

[已解决]求VBA代码

[复制链接]
发表于 2015-7-10 08:43 | 显示全部楼层 |阅读模式
求助:用VBA设置L1-L6单元格的数据录入只能是12位,且单元格的数据最后一位必须是Z或者Y才可以录入,在L1-L7之间是不断的插入和删除单元格都在录入控制范围
最佳答案
2015-7-10 09:48
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row < Range("a:a").Find("序号").Row And Target.Column = Range("L:L").Column Then
        Application.EnableEvents = False
        If Len(Target) = 12 Then
            If Right(Target, 1) = "Y" Or Right(Target, 1) = "Z" Then
                MsgBox "ok"
            Else
                MsgBox "最后一个字符不是Y,或不是Z。"
                Target = ""
            End If
        Else
            MsgBox "字符长度不是12。"
            Target = ""
        End If
        Application.EnableEvents = True
    End If
End Sub
录入位数限制2.rar (8.88 KB, 下载次数: 7)

录入位数限制.rar

2.53 KB, 下载次数: 1

发表于 2015-7-10 09:48 | 显示全部楼层    本楼为最佳答案   
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row < Range("a:a").Find("序号").Row And Target.Column = Range("L:L").Column Then
        Application.EnableEvents = False
        If Len(Target) = 12 Then
            If Right(Target, 1) = "Y" Or Right(Target, 1) = "Z" Then
                MsgBox "ok"
            Else
                MsgBox "最后一个字符不是Y,或不是Z。"
                Target = ""
            End If
        Else
            MsgBox "字符长度不是12。"
            Target = ""
        End If
        Application.EnableEvents = True
    End If
End Sub
录入位数限制2.rar (8.88 KB, 下载次数: 7)
回复

使用道具 举报

 楼主| 发表于 2015-7-10 14:19 | 显示全部楼层
If Len(Target) = 12 Then这句总是跳出运行错误
QQ图片20150710141410.png
回复

使用道具 举报

发表于 2015-7-10 17:44 | 显示全部楼层
录入位数限制3.rar (9.77 KB, 下载次数: 3)
回复

使用道具 举报

 楼主| 发表于 2015-7-11 08:26 | 显示全部楼层
还是在那个位置运行出错!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 16:48 , Processed in 0.624319 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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