tft每日頭條

 > 圖文

 > vba快速填充時間按鈕

vba快速填充時間按鈕

圖文 更新时间:2024-07-18 22:20:57

各位辦公朋粉絲友們,大家好,首先問下第一個問題:你們曾經在為Excel裡批量添加順序日期煩惱過嗎?大家肯定會說,這還不容易,不就是用自動填充功能飛快地就可以實現,誠然,這種方法不錯。接着,我要問第二個問題:能否用這種自動填充功能實現非周末時間(工作日)甚至是隻填充一周中固定的幾天的這種批量添加呢?可以想象,這種自動填充功能機會是無法實現的,如果我們再要求具備友好交互的起止日期界定之下的話,這種所謂的自動填充完全是無法實現的。

其實,這種問題,我早期幫過一個實驗室的一個同事弄過,他當時提出要求批量将日期添加進一個Excel工作表的某列,但是不要周末日期。當時,我幫這位同事做到了,也算是懶人高效辦公吧!

前兩天,一個粉絲朋友私信我說能否快速在Excel中生成指定時間段非周末的詳細日期,而且每個詳細日期格式要是“xxxx年x月x日 星期x”的形式?這個問題和我那位同事曾經的問題如出一轍,隻不過該粉絲的條件是“指定的時間段非周末”。鑒于這個問題估計對于我們的辦公朋友具有一定的共性,我準備出這一期頭條作品好好跟大家分享下實現的過程。

在這裡,我首先得聲明,實現過程全部是通過我們office高級辦公的強大VBA後台技術的支撐,這也少不了後台的編程代碼。大家不要緊張,我的代碼後幾乎都附有可讀性極強的注釋,相信大家都能看懂,同時也能清晰地顯示程序流程框架。

我們為了填充非周末日期,我們必須得事前了解星期一~星期日在一個星期中的唯一的标識ID序号情況。

一、一周中的星期幾序号情況

事實上,我們每一個日期都會自動定位到一個星期的星期幾,這個我們可以用函數輕易地知曉。但是,要說星期一~星期日在一周的序号的話,很多人都會不自覺地說是“星期一~星期日在一周”的序号對應分别是“1~7”,真的是這樣嗎?非也,正确是“星期日、星期一~星期五、星期六”在一周的對應序号才是“1~7”,這一點我們也可以從我後面的代碼中運用的函數看到這些結果。

二、簡單的前端界面設計

為了交互的友好性,我們增設了一個表單按鈕控件用于調出日期時間段參數輸入對話框,便于友好交互操作。界面如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)1

圖1 非周末日期批量填充簡單的前端界面

三、程序運行效果測試

(一)點擊前端按鈕<自動填充非周末日期>,彈出輸入起始日期參數對話框。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)2

圖2 彈出的起始日期參數輸入對話框

(二)如果直接點擊對話框的<x>或<取消>按鈕,都将彈出取消操作的提示。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)3

圖3 取消輸入起始日期的參數操作提示

(三)如果輸入錯誤的日期格式内容,也警告提示起始日期參數輸入的内容非法。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)4

圖4 輸入錯誤日期格式或内容的提示

(四)當輸入正确的起始日期參數後,點擊<确定>按鈕後,将繼續彈出輸入結束日期的輸入對話框。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)5

圖5 起始日期輸入後彈出輸入結束日期對話框

(五)同樣,如果點擊結束日期參數輸入對話框的<x>或<取消>按鈕,則同樣彈出取消輸入結束日期參數的操作提示。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)6

圖6 取消輸入結束日期的參數操作提示

(六)如果輸入錯誤的結束日期格式内容,也警告提示結束日期參數輸入的内容非法。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)7

圖7 輸入錯誤的結束日期格式或内容的提示

(七)當輸入正确的結束日期參數後,點擊<确定>按鈕後,将繼續彈出添加日期的在工作表中起始行輸入對話框。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)8

圖8 結束日期輸入後彈出工作表中添加日期起始行輸入對話框

(八)日期在工作表中載入的起始行輸入對話框中點擊了<x>或<取消>按鈕,則同樣彈出取消輸入日期載入的起始行參數的操作提示。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)9

圖9 取消輸入載入日期的起始行參數操作提示

(九)如果輸入錯誤的載入日期起始行數值的格式内容,也警告提示日期起始行參數輸入的内容非法。如下圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)10

圖10 輸入錯誤的載入日期起始行數值參數格式或内容的提示

(十)當輸入正确的載入日期起始行數值參數後,點擊<确定>按鈕後,将立即看到指定時間段的詳細日期在規定的起始行批量載入的情況。如下系列圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)11

圖11完美呈現指定時間段詳細日期的批量添加一部分

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)12

圖12完美呈現指定時間段詳細日期的批量添加二部份

以上是後台的VBA程序的運行測試體驗結果,現在我們正式來分享支撐這些完美運行效果的後台技術代碼,純幹貨的無私分享哦,請大家耐心往下看。

四、非周末日期批量添加的VBA後台代碼

代碼我們以截圖的形式截圖給各位。如下系列截圖所示

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)13

圖13 後台代碼截圖1圖13 後台代碼截圖1

vba快速填充時間按鈕(用VBA後台自動填充非周末帶星期的日期效果真棒)14

圖14 後台代碼截圖2

好了,我們的分享就到這裡。這裡的要點一是搞清楚一周的星期幾具體的唯一标識 ID序号情況;要點二是利用VBA的Inputbox輸入對話框輸入值判定一些非法、例外情況;要點三是利用日期差函數求得時間段有多少天,再用循環結構每次的下一個日期都等于最起始的日期 循環變量-循環的起始值;要點四是根據當前日期求得的星期定位出的星期ID序号确定要填充哪些日期才是非周末的。這四個要點從上面的代碼中可以完美诠釋到,望各位粉絲朋友掌握!

最後,還是那句老話,非常感謝各位粉絲朋友的長期關注(頭條号:跟我學Office高級辦公)、推廣和對作品的點評!疫情快過去了,2021年的春天來了,天氣回暖了了,大家還是要多多注意身體健康預防感冒哦,與此同時,也請多多關注我的Office高級辦公有實用意義的後續原創作品哦!謝謝!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved