日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2021-07-20 计算两个日期间的工作日天数VBA函数

發(fā)布時間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021-07-20 计算两个日期间的工作日天数VBA函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Excel自帶的NETWORKDAYS函數(shù)不支持指定為工作日,故自己寫個自定義函數(shù)

Function WorkdayCount(ByVal startDate As Date, ByVal endDate As Date, Optional holidays As Range = Nothing, Optional workDays As Range = Nothing) '計算兩個日期間的工作日天數(shù),參數(shù)1為起始日,參數(shù)2為終止日,參數(shù)三為指定休息日所在單元格(可選參數(shù)),參數(shù)四為指定工作日所在的單元格(可選參數(shù))Dim dictWorkday As Object, dictHoliday As Object, iCount&, rng As Range, date_ As Date'設(shè)置休息日字典Set dictHoliday = CreateObject("scripting.dictionary")If Not holidays Is Nothing Then '如果指定了特定休息日則加入字典For Each rng In holidaysdictHoliday(rng.Value) = ""NextEnd If'設(shè)置工作日字典Set dictWorkday = CreateObject("scripting.dictionary")If Not workDays Is Nothing Then '如果指定了特定工作日則加入字典For Each rng In workDaysdictWorkday(rng.Value) = ""NextEnd IfiCount = 0 '計數(shù)器初始值=0,可省略For date_ = startDate To endDate'如果為指定工作日則計數(shù)器+1。注意:如果指定工作日與指定休息日有重復(fù)值,會優(yōu)先判斷為工作日If dictWorkday.Exists(date_) TheniCount = iCount + 1ElseIf dictHoliday.Exists(date_) Then'跳過休息日,如需統(tǒng)計休息日可增加變量ElseIf Weekday(date_, vbMonday) < 6 Then iCount = iCount + 1End IfNextWorkdayCount = iCount '返回計數(shù)器結(jié)果End Function

總結(jié)

以上是生活随笔為你收集整理的2021-07-20 计算两个日期间的工作日天数VBA函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。