У меня проблемы с написанием кода на VBA, который позволил бы мне вводить любую заданную дату, а затем выводить текущую рабочую неделю.Мне нужно ограничение: если с воскресенья по вторник будет сохранена текущая рабочая неделя и год, но если будет среда со субботы, то будет показана следующая рабочая неделя и год.Например, я ищу ввод (28.05.19) и вывод 201922 или ввод (29.05.19) с 201923, хотя технически это та же рабочая неделя.
Прежде чем углубляться в детали, у меня есть рабочая функция, которая предоставляет год и рабочую неделю, но я пытаюсь адаптировать эту функцию или добавить отдельную функцию, которая будет изменяться на следующую рабочую неделю в соответствии с заданнымdate.
Я новичок в VBA, но в последние несколько дней пытался провести небольшое исследование.Я думал, что мог бы как-то иметь один ввод даты, а затем два вывода, где один будет годом и рабочей неделей, а другой будет числом, связанным с этой датой (1 для воскресенья, 2 для понедельника и т. Д.),Я попытался создать оператор if then, который говорит, что если число, связанное с этой датой, равно 1, 2 или 3, то рабочая неделя останется прежней.Если бы это был какой-то другой номер, то 1 был бы добавлен к той рабочей неделе, чтобы он перешел к следующей.У меня проблемы с попыткой сделать два выхода и подключить их, если это имеет смысл.
Это код, который я пытался создать, но постоянно терпел неудачу при создании.Функция, которая дает правильную рабочую неделю (без адаптации рабочей недели на основе дня недели): WWV1
Function WWV2(WeekdayName As Integer)
Dim WWV1 As Integer
If WeekdayName(Date) = 1 Or 2 Or 3 Then WWV1 = WWV1
Else: WWV1 = WWV1 + 1
End Function
Это дает ячейке #NUM!когда я использую функцию в этой ячейке, что я предполагаю, потому что мне нужно как-то соединить две функции.