#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, это лучшее решение, которое вы предоставляете. Снимаю шляпу.