Я создал пользовательскую форму, которая принимает список ссылок на задания (jobRefCbo) и заполняет текстовые поля на основе выбора. Я еще не понял ошибок, и если вы выберете пустое или нажмете escape в поле со списком, он вернется к экрану ошибок VBA.
Как я могу реализовать способ просто «ничего не делать», если выбор ссылки на задание недействителен?
Полагаю, разумным способом было бы иметь заблокированный список, но я пытаюсь извлечь список cbo из списка активных заданий в столбце.
Private Sub UserForm_Initialize()
Sheets("Lists ").Activate
Dim xRg As Range
Application.ScreenUpdating = False
Call Lists_sort
Set xRg = Worksheets("Lists ").Range("I2:P21")
Me.jobRefCbo.List = xRg.Columns(1).Value
Application.ScreenUpdating = True
End Sub
Вот код поля со списком:
Private Sub jobRefCbo_Change()
Application.ScreenUpdating = False
Call Lists_sort
Sheets("Tracker").Activate
'Formatting Issue
jobCloseFrm.date2Txt.Value = Format(Range("W1").Value, "dd/mm/yyyy")
Me.nameTxt.Value = Application.VLookup(Me.jobRefCbo.Value & "", Worksheets("Lists ").Range("I3:P21"), 2, False)
'Me.acNoTxt.Value = Application.WorksheetFunction.VLookup(Me.jobRefCbo.Value, Worksheets("Lists ").Range("I3:P21"), 2, False)
Me.jobDesc2Txt.Value = Application.WorksheetFunction.VLookup(Me.jobRefCbo.Value, Worksheets("Lists ").Range("I3:P21"), 3, False)
Me.date2Txt.Value = Application.WorksheetFunction.VLookup(Me.jobRefCbo.Value, Worksheets("Lists ").Range("I3:P21"), 4, False)
Me.month2Txt.Value = Application.WorksheetFunction.VLookup(Me.jobRefCbo.Value, Worksheets("Lists ").Range("I3:P21"), 5, False)
Me.timeOnJobTxt.Value = Application.WorksheetFunction.VLookup(Me.jobRefCbo.Value, Worksheets("Lists ").Range("I3:P21"), 6, False)
Me.StatusTxt.Value = Application.WorksheetFunction.VLookup(Me.jobRefCbo.Value, Worksheets("Lists ").Range("I3:P21"), 7, False)
Me.startTime2Txt.Value = Format(CDate(Application.WorksheetFunction.VLookup(Me.jobRefCbo.Value, Worksheets("Lists ").Range("I3:P21"), 8, False)), "hh:mm:ss AM/PM")
jobCloseFrm.date2Txt.Value = Format(Range("W1").Value, "dd/mm/yyyy")
Application.ScreenUpdating = True
End Sub
Любая помощь, которую вы можете оказать, высоко ценится!
Крейг