vba 数组 日期 大小 比较_使用VBA代码完成限制重复值的录入,及求当月最后一天日期的方法...

e9fa8072fc667fc72cc28db6f89b8603.png

分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.168-NO.169内容是:

NO. 170:如何利用VBA代码,限制重复值的录入

NO. 171:如何利用VBA代码,使用消息框显示当月最后一天的日期

VBA过程代码170:如何利用VBA代码,限制重复值的录入

e6fe09896616d685e1b66925545c2073.png

Private Sub Worksheet_Change(ByVal Target As Range)

With Target

If .Column <> 1 Or .Count > 1 Then Exit Sub

If WorksheetFunction.CountIf(Range("A:A"), .Value) > 1 Then

.Select

MsgBox "不能输入重复的人员编号!", 64

Application.EnableEvents = False

.Value = ""

Application.EnableEvents = True

End If

End With

End Sub

代码的解析说明:工作表的Change事件过程,使A列单元格只能录入唯一的人员编号。

代码中使用工作表的CountIf 函数来判断在A列单元格输入的人员编号是否重复。在示例中以所录入的人员编号与A列单元格区域进行比较,如果CountIf 函数的返回值大于1,说明录入的是重复编号。在清除前将Application对象的EnableEvents属性设置为False,禁止触发事件。因为如果不禁用事件,那么在清除重复值的过程中会不断地触发工作表的Change事件,从而造成代码运行的死循环。经过以上的设置,在工作表的A列中只能录入唯一的人员编号,如果录入重复值会进行提示不能输入重复的人员编号!

——————————————————————————————————————————————————————————————————————————————

VBA过程代码171:如何利用VBA代码,使用消息框显示当月最后一天的日期

ef2f8a112993bff499ccf6db26bed2bf.png

Sub mynz()

Dim MyDateStr As Byte

MyDateStr = Day(DateSerial(Year(Date), Month(Date) + 1, 0))

MsgBox "本月的最后一天是" & Month(Date) & "月" & MyDateStr & "号"

End Sub

代码的解析说明:上述的Mynz过程配合使用了4个VBA内置函数Year、Month、Day和DateSerial完成计算并使用消息框显示当月最后一天的日期。Date为当前的具体日期。 Month(Date) + 1 表示当前月的下个月。 Day(DateSerial(Year(Date), Month(Date) + 1, 0)) 表示当前月的下个月的前一天。

cc5009ef20c79898829dd0d9bafb2f96.png

VBA是实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第二册的95讲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值