'Это извлечение из программы Excel VBA для извлечения флагов «число дня» и «-1,0, + 1» из таблицы, называемой «Календарь событий». Столбец 1 - Событие «х», Столбец 2 дня месяца, Столбец 3 -1,0 или +1. «События НЕ описаны как Событие 1, Событие 2 и c. но имеют различные (фиксированные) описания. «Активная ячейка» - это столбец даты (1-й) на странице моей книги, «Событие x» - столбец описания (3-й) на той же странице. «Календарь событий - это таблица из 3 столбцов в моей книге». Строка 580 проверяет, является ли «новая» дата выходным или праздничным днем, и корректируется соответствующим образом, некоторые путем добавления дней, другие путем вычитания дней. «Флаг» установлен на одну из выбранных цифр (-1,0 или +1). «Флаг» устанавливается параметром «Флаг =», который также определяется календарем событий таблицы. Столбец 3. ' «Это очень« громоздко », должен быть более аккуратный путь. '
Dim Calender_of_Events(1 To 100, 1 To 2) As Variant 'Array to hold the Dates of the Calender of Events.
'Dim x, Dim u etc
Windows("Calender of Events.xlsm").Activate
Sheets("Page 2").Select
'Populate Calender_of_Events
x = Range("W2").Value 'No. of Lines in the Table (Page 2 - Column W (Col 23))
ActiveSheet.Cells(2, 23).Select
For u = 1 To (x + 1)
ActiveCell.Offset(1).Select
Calender_of_Events(u, 1) = ActiveCell()
Calender_of_Events(u, 2) = ActiveCell.Offset(0, -1)
Next u
Windows("Calender of Events.xlsm").Activate
Sheets("Page 1").Select
Line260:
If (ActiveCell.Offset(0, 2) = "Event 1") Then Else GoTo Line270 'Not "Event 1" then go to the next detail
If (IsError(Application.VLookup("Event 1", Calender_of_Events, 2, False))) Then GoTo Line990
A234 = Application.VLookup("Event 1", Calender_of_Events, 2, False) '"No Match" Else "Match"
C210 = CDate((A234) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line270:
If (ActiveCell.Offset(0, 2) = "Event 2") Then Else GoTo Line280 'Not "Event 2" then go to the next detail
If (IsError(Application.VLookup("Event 2", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A244 = Application.VLookup("Event 2", Calender_of_Events, 2, False)
C210 = CDate((A244) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line280:
If (ActiveCell.Offset(0, 2)) = "Event 3" Then Else GoTo Line290 'Not "Event 3" then go to the next detail
If (IsError(Application.VLookup("Event 3", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A253 = Application.VLookup("Event 3", Calender_of_Events, 2, False)
C210 = CDate((A253) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line290:
If (ActiveCell.Offset(0, 2)) = "Event 4" Then Else GoTo Line300 'Not "Event 4" then go to the next detail
If (IsError(Application.VLookup("Event 4", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A259 = Application.VLookup("Event 4", Calender_of_Events, 2, False)
C210 = CDate((A259) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line300:
If (ActiveCell.Offset(0, 2)) = "Event 5" Then Else GoTo Line310 'Not "Event 5" then go to the next detail
If (IsError(Application.VLookup("Event 5", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A265 = Application.VLookup("Event 5", Calender_of_Events, 2, False)
C210 = CDate((A265) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line310:
If (ActiveCell.Offset(0, 2)) = "Event 6" Then Else GoTo Line320 'Not "Event 6" then go to the next detail
If (IsError(Application.VLookup("Event 6", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A270 = Application.VLookup("Event 6", Calender_of_Events, 2, False)
C210 = CDate((A270) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line320:
If (ActiveCell.Offset(0, 2)) = "Event 7" Then Else GoTo Line330 'Not "Event 7" then go to the next detail
If (IsError(Application.VLookup("Event 7", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A275 = Application.VLookup("Event 7", Calender_of_Events, 2, False)
C210 = CDate((A275) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line330:
If (ActiveCell.Offset(0, 2)) = "Event 8" Then Else GoTo Line340 'Not "Event 8" then go to the next detail
If (IsError(Application.VLookup("Event 8", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A280 = Application.VLookup("Event 8", Calender_of_Events, 2, False)
C210 = CDate((A280) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line340:
If (ActiveCell.Offset(0, 2)) = "Event 9" Then Else GoTo Line350 'Not "Event 9" then go to the next detail
If (IsError(Application.VLookup("Event 9", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A285 = Application.VLookup("Event 9", Calender_of_Events, 2, False)
C210 = CDate((A285) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580
Line350:
If (ActiveCell.Offset(0, 2)) = "Event 10" Then Else GoTo Line360 'Not "Event 10" then go to the next detail
If (IsError(Application.VLookup("Event 10", Calender_of_Events, 2, False))) Then GoTo Line990 '"No Match" Else "Match"
A294 = Application.VLookup("Event 10", Calender_of_Events, 2, False)
C210 = CDate((A294) & "/" & (A174) & "/" & (Input_Year))
ActiveCell.Value = C210
C202 = ActiveCell()
z = 0: GoTo Line580