Как выполнить оператор If в зависимости от даты в ячейке, Excel VBA - PullRequest
0 голосов
/ 11 февраля 2019

Я пишу программу регистрации данных, и мне нужно написать фрагмент кода VBA для Excel, чтобы создать итоговую сумму определенных фрагментов информации за определенный месяц.То есть, если запись была сделана в январе, и запись относится к определенному типу, то в итоговой таблице делается промежуточная сумма, как бы много ни было записей этого типа.У меня есть следующий код, но он не работает:

 Dim DateCheck As Range

Set DateCheck = Worksheets("Jan").Range("Data_Start").End(xlDown)
Set SumCountLim1 = Worksheets("Jan").Range("Data_Start").End(xlDown).Offset(0, 3)
Set SumCountLim2 = Worksheets("Jan").Range("Obs_Start").End(xlDown)

If DateCheck.Value Like "##-01-##" Then        '-Should I use the month worksheet funct here?'
     Sheets("Site Visit Summary").Range("DateJan").Offset(17, 0).Value = 2

     Sheets("Site Visit Summary").Range("DateJan").Offset(1, 0) = _
     Sheets("Site Visit Summary").Range("DateJan").Offset(1, 0).Value + _
     Application.WorksheetFunction.CountIf(Range(SumCountLim1, SumCountLim2), "Housekeeping and Other Hazards")
Else 
End If

Надеюсь, мое объяснение понятно.Заранее спасибо!

PS Я использовал Microsoft DatePicker в пользовательской форме, чтобы позволить пользователю выбрать дату ввода.Я не знаю, помогает ли эта добавленная информация!

1 Ответ

0 голосов
/ 11 февраля 2019

Добрый день,

Похоже, у вас нет End if или

if DateCheck.value = Month(<Cell_Location_Of_Month) Then <some_action_here>

или

if DateCheck.value = Month(<Cell_Location_Of_Month) goto <some_location_here>

или

if DateCheck.value = Month(<Cell_Location_Of_Month) Then
    'Some_Action_here
else
    'Some_Other_Action_Here
end if
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...