Как получить значение даты в текстовое поле из столбца вместо серийного номера даты?

#vba

#vba

Вопрос:

Я создал крошечную пользовательскую форму, где TextBox1 — это txtsr, а TextBox2 — это txtdate. и четвертый столбец моей таблицы Vlookup — это столбец даты, все ячейки заполнены форматом даты (дд-мм-гггг).

С помощью приведенного ниже кода, когда я ввожу текст в поле txtsr, txtdate заполняется серийным номером даты вместо формата даты.

 Private Sub txtsr_Change()

Dim myRange As Range
Set myRange = Worksheets("VEHICLE IN").Range("B2:F20")

txtdate.Value = Application.WorksheetFunction.VLookup(txtsr, myRange, 4, False)
If Err.Number <> 0 Then txtdate.Value = ""

End Sub
  

как отобразить txtdate, заполненный правильным форматом даты (дд-мм-гггг) вместо серийного номера sate?

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

1. Найдите функцию форматирования vba

2. Я пробовал Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) метод Private Sub TextBox1_AfterUpdate method, а также некоторые другие методы, доступные в Интернете. но не повезло.

Ответ №1:

Это должно выполнить задание (непроверенное — пожалуйста, попробуйте).

 Private Sub txtsr_Change()

    Dim myRange As Range
    Dim MyDate As Variant
    
    Set myRange = Worksheets("VEHICLE IN").Range("B2:F20")
    MyDate = Application.WorksheetFunction.VLookup(txtsr, myRange, 4, False)
    If Err.Number Then
        txtdate.Value = ""
    Else
        txtdate.Value = Format(MyDate, "dd-mm-yy")
    End If
End Sub
  

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

1. Спасибо , Variatus, это лучшее решение, которое вы предоставляете. Снимаю шляпу.