Преобразование формата даты в VBA

#excel #vba

Вопрос:

Мне нужно изменить даты с помощью VBA. Формат, который у меня есть m/d/yyyy , (3/4/2021) или mm/dd/yyyy (03/04/2021). Excel распознает значения как дату.

Мне нужно преобразовать их в формат yyyymmdd . Нет возможности использовать Формат ячейки->Пользовательский.

Кроме того, в датах должна быть указана дата-1.

Я начал писать код, но столкнулся с некоторыми проблемами, и я не знаю, как двигаться дальше с этим.

 Sub paydate()

Dim i as byte
Dim j as date
Dim k as string

i = 4

Do while cells(1,4)<>""
  j = cells(i,4).value
  cells(i,4).value=j-1
  j=cells(i,4)
Loop

End sub 
 

Подводя итог, я создал цикл для изменения даты на дату-1, но я не знаю, как преобразовать ее в формат yyyymmdd .

Любая помощь будет оценена по достоинству.

Комментарии:

1. Вам не хватает Loop , чтобы закрыть свой Do While

2. Если вы действительно хотите написать значение, которое не является датой: cells(i,4).Value = Format(j-1,"yyyymmdd") .

3. @BigBen Это, наверное, то, что я ищу 🙂 Спасибо

4. @BigBen, не могли бы вы это объяснить?

5. @Gass, может быть, попробуешь документы .