Я создал Userform с несколькими кнопками опций в составе крупного макроса. UserForm будет загружаться, если есть определенная ошибка расчета, и попросит пользователя выбрать метод для исправления ошибки. Один параметр включает элемент управления RefEdit и позволяет пользователю выбирать новую начальную ячейку (и пропускать ошибки и ячейки между текущим и новым диапазоном).UserForm RefEdit - код для повторной инициализации выбора диапазона
Я использовал событие _Exit, чтобы установить некоторую проверку ошибок (например, для обеспечения выбора допустимого диапазона или для обеспечения диапазона 1x1), но мне не удалось найти способ принудительного управления элементом RefEdit «повторно инициализировать». Я попытался использовать метод RefEdit.SetFocus, но это не приводит к результату, который я хочу.
В принципе, есть ли команда, которую я могу использовать, которая отражает действие щелчка на кнопке dropbutton на элементе управления RefEdit?
Private Sub RefEdit_NewStartCell_Exit(ByVal Cancel As MSForms.ReturnBoolean) On Error Resume Next Set UserRange = Range(RefEdit_NewStartCell.Text) If Err.Number <> 0 Then MsgBox "Invalid range selected" RefEdit_NewStartCell.SetFocus End If On Error GoTo 0
только немой вопрос: когда есть ошибка не будет 'Отмена = true' все, что вам нужно? (я уверен, что я ошибся) –
Не уверен, я не слишком хорошо знаком с тем, как работает Отказ. Это просто заменит эту линию? 'If Err.Number <> 0 Then' – CrazyPianoMan
' Cancel = True' просто предотвратит такое действие: в этой книге: 'Private Sub Workbook_BeforeClose (Cancel As Boolean): Cancel = True: End Sub', если вы попытаетесь закройте рабочую книгу, чтобы запустить BeforeClose. Если (в конце Sub) 'Cancel = True', действие будет отменено самостоятельно => вы не сможете закрыть книгу. если RefEdit_NewStartCell_Exit работает одинаково, то 'If Err.Number <> 0 Then Cancel = True' будет препятствовать его завершению, и вы будете придерживаться выбора до' Range (RefEdit_NewStartCell.Text) 'не имеет ошибки в Exit ... но я не уверен ... просто попробуйте :) –