Помогите разобраться с формой, пытаюсь сделать в форме отображение значения на основе Введенного значения. Допустим ввожу - 1 Должно отобразится - 12.08.2018 Файлик для примера прикладываю.
P.S. Мне нужно понять принцип как это в VBA прописывается, ведь то что я описал это просто функция ВПР
Private Sub TextBox1_Change()
On Error Resume Next
TextBox2.Value = Format(Application.VLookup(Int(TextBox1.Value), Sheets("Лист2").Columns("A:B"), 2, 0), "dd.MM.yyyy")
On Error GoTo 0
End Sub
alextlt написал: Мне нужно понять принцип как это в VBA прописывается
Это прописывается в обработчиках событий, в модуле формы. Например так
Код
Public dic As Object
Private Sub UserForm_Initialize()
With Worksheets("Лист2")
arr = .Range("A2:B" & .Cells(.Rows.Count, 1).End(xlUp).Row).Value
End With
Set dic = CreateObject("Scripting.Dictionary")
For I = 1 To UBound(arr)
dic.Add CStr(arr(I, 1)), arr(I, 2)
Next
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
If dic.Exists(Me.TextBox1.Value) Then
Me.TextBox2.Value = dic(Me.TextBox1.Value)
Else
Me.TextBox2.Value = Empty
MsgBox "Введенное значенние в таблице отсутствует!", vbCritical
End If
End If
End Sub
alextlt написал: конечно вариант предложенный " webley " практичней
Возможно. Все зависит от решаемой задачи. Вариант от webley, реагирует на КАЖДЫЙ введенный символ в TextBox1, мой только на полностью введенный номер после нажатия на Enter
Согласие есть продукт при полном непротивлении сторон