Добавление параметра праздника в функцию NetworkDays

Я хотел бы обратиться за помощью с функцией NetworkDays.

Меня интересует последний параметр, содержащий праздники. Пока мне удалось заставить его работать с диапазонами ячеек на листе, однако я бы хотел избежать ссылок на ячейки.

Есть ли возможность использовать массивы? Пока все мои попытки не увенчались успехом.

Я попытался определить:

Dim holidayDates() as Variant
holidayDates = Array(DateSerial(2023,1,1),DateSerial(2023,12,25))

и так далее со многими датами между ними

Тогда я бы позвонил

WorksheetFunction.NetworkDays(.Cells(3,3).Value, .Cells(3,3).Value, holidayDates)

чтобы проверить один день, является ли он выходным или праздничным днем. Однако этот подход не работает. Ячейка (3,3) содержит дату в непоследовательном формате, который отлично работает без параметра праздника.

Я также пробовал вместо этого использовать строку с последовательными значениями даты, разделенными запятыми, но это тоже не сработало. Например. DateSerial(2023,1,1) & "," & DateSerial(2023,12,25) и так далее.

Оба подхода были протестированы с обычным форматом даты, а также с функцией DateSerial.

«этот подход не работает» — чем результат отличается от ожидаемого?

Tim Williams 10.06.2024 18:09

Попробуйте использовать число, которое представляет дата (например: 41268 вместо Dec 15, 2012,).

cybernetic.nomad 10.06.2024 18:25

Непонятно, что вы имеете в виду под «не работает». Ваш алгоритм и код здесь отлично работают и возвращают 0, если дата (дублированная как даты начала и окончания) находится в массиве holidayDates или если это выходной день.

Ron Rosenfeld 11.06.2024 02:42

Что именно вы подразумеваете под date in a non-serial format ? Даты хранятся в виде чисел. То, как они отформатированы, не должно иметь значения. Serial format не является одним из перечисленных вариантов формата ячейки.

Ron Rosenfeld 11.06.2024 12:58

@RonRosenfeld Непоследовательный формат даты может быть, например. 01.01.2024, я именно это и имел в виду.

user25470378 12.06.2024 17:44
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
5
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возвращаемое значение DateSerial (это тип даты) должно быть преобразовано в двойной тип.


Dim holidayDates() As Variant
holidayDates = Array(CDbl(DateSerial(2023, 1, 1)), CDbl(DateSerial(2023, 12, 25)))
With ActiveSheet
WorksheetFunction.NetworkDays .Cells(3, 3).Value, .Cells(3, 3).Value, holidayDates
End With

Кажется, здесь все работает без проблем, используя тип данных даты для праздничных дней.

Ron Rosenfeld 11.06.2024 02:45
Unable to get the NetworkDays property of the WorksheetFunction class мне вернули без CDbl. Странный.
Black cat 11.06.2024 05:44

Я скопировал/вставил ваш код, и он запустился без ошибок, без CDbl с C3 либо пустым, либо содержащим дату.

Ron Rosenfeld 11.06.2024 12:56

Разнообразие делектат.

Black cat 11.06.2024 13:06

@RonRosenfeld Привет, Черный кот, Рон, у меня была та же проблема/ошибка (извиняюсь, Рон, что не опубликовал сообщение раньше, я все еще новичок на форуме), что и у Черного кота, поэтому я разместил свой вопрос здесь. Я не думал, что серийный номер даты является параметром двойного типа для функции NetworkDays. Однако по какой-то странной причине сегодня он работает без CDbl. Это странно и я не знаю причины. Я хотел бы поблагодарить вас обоих, Рона и Черного кота — вы действительно решили мою проблему и спасли меня.

user25470378 12.06.2024 17:43

@Blackcat Добавляю и тебя. Спасибо!

user25470378 12.06.2024 17:44

Другие вопросы по теме