我們要做 WorkdayPlus 函數有四個參數:
- start_date 日期: 參考日期
- days 數字: 要找的向前或向後多少工作天數
- holidays 範圍(選擇性): 包含額外的假日清單
- workdays 範圍(選擇性): 包含額外的補班日清單
- 將 start_date 加上 days, 成為第一個猜測的結果 result
- 檢查 start_date 和 result 之間的工作天數 (用 NetWorkdaysPlus), 與 days 的差異有幾天 diff
- 如果 diff 不是零, 將 result 加上 diff 之後, 重新執行第二個步驟
- 如果 diff 是零, result 就是結果
將演算法寫成 VBA. 另外我還修改了 NetWorkdaysPlus 的參數型態, start_date 和 end_date 原本是 Range, 但為了要讓 WorkdayPlus 呼叫, 改為純量值的 Date.
我們就可以在工作表上使用函數型式的 WorkdayPlus 了.
下載: 範例檔案
沒有留言:
張貼留言