打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel VBA【小技巧】所有工作表统一Change事件/限制所有工作表输入今天及以后日期
快速浏览
往期合集:【2023年3月】【2023年4月】【2023年5月】【2023年6月】【2023年7月】【2023年8月】【2023年9月
实用案例
|日期控件||简单的收发存||收费管理系(Access改进版)|
|电子发票管理助手||电子发票登记系统(Access版)|
|文件合并||表格拆分||审计凭证抽查底稿|
|中医诊所收费系统(Excel版)||中医诊所收费系统(Access版)|
收费使用项目
|财务管理系统||工资薪金和年终奖个税筹划|
内容提要
SheetChange事件
限制工作表输入今天及以后日期
前期代码纠错
大家好,我是冷水泡茶,今天在网上看到一个提问:
wps表格如何限制单元格填写今天或者今天之后的日期?
通常,我们首先想到的可能是用数据验证的方法,也有几个人就是这样回答的。
我觉得用数据验证有点烦琐,而且经常跳出错误提示也有点不爽。
于是,我就想到可以用VBA代码来解决。代码很简单,可以利用工作表的Change事件。
但转念一想,如果多个工作表都要这样输入日期,那是不是要在每个工作表的Change事件中添加相同的代码?
一想到这,顿时没有那么爽了。
然后,我就想,能不能在ThisWorkbook里输入代码,能够对所有工作表起作用?
还真有这么一个事件,Workbook_SheetChange,但是怎么用呢?于是上网查了一通,最终形成以下代码,达成目的,在ThisWorkbook的代码窗里输入以下代码:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim shNames As String '把shNames的值改为你需要检查日期的工作表名,"All"表示所有工作表 shNames = "/Sheet1/Sheet2/"' shNames = "/All/" If InStr(shNames, "/" & Sh.Name & "/") Or InStr(shNames, "/All/") Then Call DateValidation(Target) End IfEnd SubPrivate Sub DateValidation(Target As Range) If IsDate(Target.Value) Then ' 检查是否目标单元格的内容是日期 If Target.Value < Date Then Target.Value = Date ' 如果小于今天,则填写今天的日期 End If End IfEnd Sub
代码解析:
1、line1~9,工作簿中的工作表Change事件。(1)shNames,定义的变量,把所有需要检查日期输入的工作表名,用"/"连成一个字符串,如果需要应用到所有工作表,给它赋值“/All/”。(2)判断工作表名是否在shNames中,或者shNames中是否包括“/All/",调用DataValidation过程。2、line10~16,DataValidation过程,检查单元输入值,如果输入的是日期,则检查其值是否大于或等于今天的日期,若为否,则把目标单元格的值改为今天的日期。
代码不多,也很简单。但我觉得这种思路与方法还是有一定的参考价值的。
前期代码纠错:
今天在修改《财务管理系统》的时候,发现前天导入的数据有点问题,有一个表没有导成功,已导入成功的表中,最后一列数据没导进来。经检查发现,在前天分享的【MySql批量导入数据】一文件中,【自定义过程importData】里的代码有问题:在第18行,后面少加了 “& "/"”,造成匹配判断错误:
strTables = "/" & strTables应改为:strTables = "/" & strTables & "/" 在第27行,同样的问题:
strCol = "/" & strCol应改为:strCol = "/" & strCol & "/"这里把字段前后加上“/”,是为了精确匹配。保证数据导入的准确性,相同的表、相同的字段才导入。
修改后,重新导入数据,这回没有问题了。
好,今天就到这,我们下期再会。~~~~~~End~~~~~~
安利小店
安利的牙膏非常不错,用了以后就不想再用其他的了;洗洁精、洗衣液也是日常必备,用过都说好!
合谷医疗
合谷医疗专攻各种疑难杂症,尤其擅长腰颈椎疾病、儿童神经发育异常、多动症、自闭孤独症治疗,可谓神乎其技!体验过的直呼早点来就好了!
喜欢就点个赞、点在看、留言评论、分享一下呗!感谢支持!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
每日Excel分享(VBA)| 这种高效快捷且格式规范的日期输入方法你会用吗?
Excel事件(三)工作簿事件
vba workbook触发事件
工作表事件之SelectionChange | VBA实例教程
【EXCEL教程】VBA 一键超链接
VBA事件魔法 禁止用户修改工作表名称
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服