0
我正在使用字典來存放銀行假期列表。我想檢查當前的1日是否是銀行假期,如果是這樣的話,檢查前一天是否是銀行假期,以及如果前3天是銀行假期(例如,週一是銀行假期,以及上週五) ?在Excel中檢查日期VBA詞典
我在檢查字典中的日期時遇到問題。我可以比較字符串(聲明日期作爲字符串,所以我的IF查詢工作),但我不能那麼從這個日期-1或-3,因爲它是一個字符串。
任何人都可以告訴我如何檢查下面的代碼中的日期嗎?
Public currentDate As Long
Public Bankholiday As Boolean
Public DoubleBank As Boolean
Public asdfg As Date
Public currentDay As String
Public BankHolidays As Scripting.Dictionary
Public DiaryDate As String
,那麼子是
Sub GetDate()
'Created to determin if a Bank Holiday needs to be taken into account for
Date to run
currentDate = Date - 1
Today = Date - 1
currentDay = Format(Date, "dddd") 'writes day out as string e.g. Monday,
Tuesday....
currentDate = Format(Date, "yyyymmdd") 'set format for SQL query
DiaryDate = Format(Date - 1, "dd/mm/yyyy")
'Set Dictionary Object
Set BankHolidays = CreateObject("Scripting.Dictionary")
'Add dates to Dictionary
BankHolidays.Add "01/01/2017", "B1"
BankHolidays.Add "02/05/2017", "B2"
BankHolidays.Add "14/04/2017", "B3"
BankHolidays.Add "17/04/2017", "B4"
BankHolidays.Add "01/05/2017", "B5"
BankHolidays.Add "29/05/2017", "B6"
BankHolidays.Add "28/08/2017", "B7"
BankHolidays.Add "25/12/2017", "B8"
BankHolidays.Add "26/12/2017", "B9"
BankHolidays.Add "01/01/2018", "B10"
BankHolidays.Add "30/03/2018", "B11"
BankHolidays.Add "02/04/2018", "B12"
BankHolidays.Add "07/05/2018", "B13"
BankHolidays.Add "28/05/2018", "B14"
BankHolidays.Add "27/08/2018", "B15"
BankHolidays.Add "25/12/2018", "B16"
BankHolidays.Add "26/12/2018", "B17"
BankHolidays.Add "04/05/2017", "B18"
BankHolidays.Add "03/05/2017", "B18"
'Check if Todays Date is in the dictionary
If BankHolidays.Exists(DiaryDate) Then
Today = Today - 1
MsgBox "1"
'For instances of 2 consecutive bankholidays in a row (no weekend in between)
If BankHolidays.Exists(Today) Then
Today = currentDate - 1
MsgBox "2"
End If
'For instances of 2 consecutive bankholidays in a row (WITH weekend in between)
If BankHolidays.Exists(Today - 2) Then
Today = currentDate - 1
MsgBox "3"
End If
End If
End Sub
未經測試,但將在下面的工作也? 'DiaryDate = CStr(CDate(DiaryDate)-2)' – Zerk