Используя Excel VBA, я пытаюсь проверить, является ли дата выходным днем (или нет).Однако, если дата не является выходным днем, который является номером 1 в моем массиве выходных дней, я продолжаю получать # N / A. (Или в случае ниже, сообщение «не найден») ЕДИНСТВЕННОЕ время, когда оно совпадает, это если датаявляется первым перечисленным в моем массиве Bank Holiday.Я просмотрел все запросы "Vlookup - # N / A, которые были зарегистрированы, но не вижу ответа на мою конкретную проблему. Я могу использовать цикл For-Next, используя x = 1 до 9, для циклического прохожденияBank_Holiday, и он работает отлично. Почему не работает Vlookup?
Dim Bank_Holiday(1 To 9) As Long
Dim thisdate As Long
Dim found As Boolean
Dim nextdate As String
Dim y As Variant
'заполняет даты праздничных дней (2020) числами
Bank_Holiday(1) = 43833
Bank_Holiday(2) = 43931
Bank_Holiday(3) = 43934
Bank_Holiday(4) = 43955
Bank_Holiday(5) = 43976
Bank_Holiday(6) = 44074
Bank_Holiday(7) = 44190
Bank_Holiday(8) = 44193
Bank_Holiday(9) = 44197
Windows("bankacct20 - Copy.xlsx").Activate ' An available workbook
Sheets("Jan_Mar20").Select 'An available worksheet
ActiveSheet.Cells(5, 1).Select 'Top of the "Date" column
thisdate = ActiveCell() 'pick up the date
y = Application.VLookup(thisdate, Bank_Holiday, 1, False)
If Not (IsError(y)) Then
found = True
End If
nextdate = Format(thisdate, "dddd dd mm yyyy")
If found Then
MsgBox ("Congratulations! " & nextdate & " Found!")
Else
MsgBox ("The Bank Holiday date " & nextdate & " does not exist")
End If
Я ожидаю, что когда активная ячейкаЭто выходной день, окно сообщения будет отражать это.