#excel #vba
#excel #vba
Вопрос:
У меня есть код, который отображается в ячейке «H5» без учета пятниц, но ссылается на «H4». И мне нужен «H4» также, исключая пятницы.
Sub DateAddition()
Range("H4").Value = DateAdd("d", 1, CDate(Range("H4").Value))
Range("H5").Value = WorksheetFunction.WorkDay_Intl(Range("H4").Value, 1, 16, 0)
End Sub
Я пробовал использовать подобное, к сожалению, не работает.
Range("H4").Value = DateAdd("d", 1, CDate(WorksheetFunction.WorkDay_Intl(Range("H4").Value, 1, 16, 0))
Я знаю, что если в эту строку внесено изменение, я смогу это внести. Но не знаю код
Range("H4").Value = DateAdd("d", 1, CDate(Range("H4").Value))
Мне нужно, чтобы ячейка «H4» была выведена как дата, которая должна исключать пятницы
Ответ №1:
Просто используйте то же, что и для H5. Функция Worksheet.Метод WorkDay_Intl уже добавляет один день (задается вторым параметром, который является 1
), поэтому вам не нужно использовать DateAdd
.
Option Explicit
Sub DateAddition()
Range("H4").Value = WorksheetFunction.WorkDay_Intl(Range("H4").Value, 1, 16, 0)
Range("H5").Value = WorksheetFunction.WorkDay_Intl(Range("H4").Value, 1, 16, 0)
End Sub
Комментарии:
1. Как насчет вычитания даты
2. @AfzalAshraf Вам действительно следует прочитать документацию, если я уже дал вам прямую ссылку: «Дни — количество рабочих дней до или после start_date. Положительное значение дает будущую дату; отрицательное значение дает прошлую дату; значение 0 (ноль) дает start_date. Смещение дня усекается до целого числа.»
3. Извините, что я это не проверил. Но теперь я понял. Вы очень добры и услужливы!