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