各位办公朋粉丝友们,大家好,首先问下第一个问题:你们曾经在为Excel里批量添加顺序日期烦恼过吗?大家肯定会说,这还不容易,不就是用自动填充功能飞快地就可以实现,诚然,这种方法不错。接着,我要问第二个问题:能否用这种自动填充功能实现非周末时间(工作日)甚至是只填充一周中固定的几天的这种批量添加呢?可以想象,这种自动填充功能机会是无法实现的,如果我们再要求具备友好交互的起止日期界定之下的话,这种所谓的自动填充完全是无法实现的。
其实,这种问题,我早期帮过一个实验室的一个同事弄过,他当时提出要求批量将日期添加进一个Excel工作表的某列,但是不要周末日期。当时,我帮这位同事做到了,也算是懒人高效办公吧!
前两天,一个粉丝朋友私信我说能否快速在Excel中生成指定时间段非周末的详细日期,而且每个详细日期格式要是“xxxx年x月x日 星期x”的形式?这个问题和我那位同事曾经的问题如出一辙,只不过该粉丝的条件是“指定的时间段非周末”。鉴于这个问题估计对于我们的办公朋友具有一定的共性,我准备出这一期头条作品好好跟大家分享下实现的过程。
在这里,我首先得声明,实现过程全部是通过我们office高级办公的强大VBA后台技术的支撑,这也少不了后台的编程代码。大家不要紧张,我的代码后几乎都附有可读性极强的注释,相信大家都能看懂,同时也能清晰地显示程序流程框架。
我们为了填充非周末日期,我们必须得事前了解星期一~星期日在一个星期中的唯一的标识ID序号情况。
一、一周中的星期几序号情况
事实上,我们每一个日期都会自动定位到一个星期的星期几,这个我们可以用函数轻易地知晓。但是,要说星期一~星期日在一周的序号的话,很多人都会不自觉地说是“星期一~星期日在一周”的序号对应分别是“1~7”,真的是这样吗?非也,正确是“星期日、星期一~星期五、星期六”在一周的对应序号才是“1~7”,这一点我们也可以从我后面的代码中运用的函数看到这些结果。
二、简单的前端界面设计
为了交互的友好性,我们增设了一个表单按钮控件用于调出日期时间段参数输入对话框,便于友好交互操作。界面如下图所示
图1 非周末日期批量填充简单的前端界面
三、程序运行效果测试
(一)点击前端按钮<自动填充非周末日期>,弹出输入起始日期参数对话框。如下图所示
图2 弹出的起始日期参数输入对话框
(二)如果直接点击对话框的<x>或<取消>按钮,都将弹出取消操作的提示。如下图所示
图3 取消输入起始日期的参数操作提示
(三)如果输入错误的日期格式内容,也警告提示起始日期参数输入的内容非法。如下图所示
图4 输入错误日期格式或内容的提示
(四)当输入正确的起始日期参数后,点击<确定>按钮后,将继续弹出输入结束日期的输入对话框。如下图所示
图5 起始日期输入后弹出输入结束日期对话框
(五)同样,如果点击结束日期参数输入对话框的<x>或<取消>按钮,则同样弹出取消输入结束日期参数的操作提示。如下图所示
图6 取消输入结束日期的参数操作提示
(六)如果输入错误的结束日期格式内容,也警告提示结束日期参数输入的内容非法。如下图所示
图7 输入错误的结束日期格式或内容的提示
(七)当输入正确的结束日期参数后,点击<确定>按钮后,将继续弹出添加日期的在工作表中起始行输入对话框。如下图所示
图8 结束日期输入后弹出工作表中添加日期起始行输入对话框
(八)日期在工作表中载入的起始行输入对话框中点击了<x>或<取消>按钮,则同样弹出取消输入日期载入的起始行参数的操作提示。如下图所示
图9 取消输入载入日期的起始行参数操作提示
(九)如果输入错误的载入日期起始行数值的格式内容,也警告提示日期起始行参数输入的内容非法。如下图所示
图10 输入错误的载入日期起始行数值参数格式或内容的提示
(十)当输入正确的载入日期起始行数值参数后,点击<确定>按钮后,将立即看到指定时间段的详细日期在规定的起始行批量载入的情况。如下系列图所示
图11完美呈现指定时间段详细日期的批量添加一部分
图12完美呈现指定时间段详细日期的批量添加二部份
以上是后台的VBA程序的运行测试体验结果,现在我们正式来分享支撑这些完美运行效果的后台技术代码,纯干货的无私分享哦,请大家耐心往下看。
四、非周末日期批量添加的VBA后台代码
代码我们以截图的形式截图给各位。如下系列截图所示
图13 后台代码截图1图13 后台代码截图1
图14 后台代码截图2
好了,我们的分享就到这里。这里的要点一是搞清楚一周的星期几具体的唯一标识 ID序号情况;要点二是利用VBA的Inputbox输入对话框输入值判定一些非法、例外情况;要点三是利用日期差函数求得时间段有多少天,再用循环结构每次的下一个日期都等于最起始的日期 循环变量-循环的起始值;要点四是根据当前日期求得的星期定位出的星期ID序号确定要填充哪些日期才是非周末的。这四个要点从上面的代码中可以完美诠释到,望各位粉丝朋友掌握!
最后,还是那句老话,非常感谢各位粉丝朋友的长期关注(头条号:跟我学Office高级办公)、推广和对作品的点评!疫情快过去了,2021年的春天来了,天气回暖了了,大家还是要多多注意身体健康预防感冒哦,与此同时,也请多多关注我的Office高级办公有实用意义的后续原创作品哦!谢谢!
,