#excel #vba
#excel #vba
Вопрос:
У меня есть некоторые проблемы с моим кодом VBA. Я получил переменную даты, которая хранится как dd/mm/yyyy
, но когда я записываю дату в определенную ячейку, формат меняется mm/dd/yyyy
, я пробовал много вариантов, но ни один из них не работал для меня, я также проверяю, чтобы переменная знала, какой текущий день, месяц и год.
Код:
Sheets("report_orders").Select
Range("A1").Value = customerName
Range("A2").Value = "äæîðä " amp; orderID
Range("A3").Value = "äæîðä ì÷åç " amp; orderPo
'Range("B2").Value = orderDate
Range("B2").Value = Day(orderDate) amp; "/" amp; Month(orderDate) amp; "/" amp; Year(orderDate)
Debug.Print "year " amp; Year(orderDate)
Debug.Print "month " amp; Month(orderDate)
Debug.Print "day " amp; Day(orderDate)
но результат :
Комментарии:
1. docs.microsoft.com/en-us/office/vba/api/…
2. Вы можете использовать
Format()
функцию.3.
Date variable that stored as dd/mm/yyyy
— это не сохраняется таким образом, потомуDate
что переменные не имеют формата. Вы должны удалить свой код и заменить его наRange("B2").Value = orderDate
, и вы должны применить форматирование даты, которое вы хотите, к ячейке.4. Я пробую все это, ни один из этих вариантов не сработал
5. @lidorag вы пробовали то, что предложил BraX?
Range("B2").NumberFormat = "mm/dd/yyyy"
и затемRange("B2").Value = orderDate
. Это, безусловно, сработает
Ответ №1:
Когда вы помещаете дату в ячейку, вы можете отформатировать ее с помощью .NumberFormat
. Убедитесь, что вы отформатировали ячейку перед вводом значения. Например
Range("B2").NumberFormat = "mm/dd/yyyy"
Range("B2").Value = orderDate
Вы можете прочитать больше о .NumberFormat
диапазоне in.Свойство NumberFormat (Excel)
Комментарии:
1. Я внес некоторые изменения. Не стесняйтесь откатить, если вам не нравятся изменения 🙂
2. @Gustav. Это неправильное редактирование. Я откатил его назад. Пожалуйста, убедитесь, что вы понимаете, прежде чем редактировать ответ 🙂 Ячейка должна быть отформатирована перед вводом даты. Это также подтверждается OP в комментарии под вопросом 😉
3. @SiddharthRout: я не откатывал его, я исправил его, потому что ваше утверждение неверно. Числовой формат может быть применен в любое время. Но я неправильно истолковал запрос на формат даты, извините.
4.
@SiddharthRout: I didn't roll it back, I corrected it because your statement is wrong. The numberformat can be applied at any time. But I misread the request for the date format, sorry. – Gustav just now
@Gustav: Я никогда не говорил, что ты откатил его назад 🙂 Также мое утверждение не является неправильным. Что касается …The numberformat can be applied at any time.
Я никогда не оспаривал этот факт. вы можете применить его в любое время. Но чтобы увидеть эффект, вы должны применить его перед вводом даты.5. @SiddharthRout: Я никогда не оспаривал этот факт. вы можете применить его в любое время. Но чтобы увидеть эффект, вы должны применить его перед вводом даты. … Так что вы можете, но вы не можете. Запутался? Конечно, вы можете изменить формат, когда захотите, и отображение изменится соответствующим образом.