Добрый вечер! У меня есть форма, на которой много элементов (label, textbox, combobox). Форма используется для разных целей, запускается в нескольких режимах. Очень хочется для удобства настроить порядок перехода по элементам управления в зависимости от режима формы. Также одна из проблем переходов - контроль ввода даты в текстбокс. Данные считываются с формы и вносятся в таблицу БД Firebird, поэтому она должна быть введена в текстбокс в формате dd.mm.yyyy. Соответственно самое примитивное условие, с которого начинаю проверку, чтобы количество знаков было 10. Если условие не выполняется, то нужно стереть введенный текст, и установить курсор в этот же текстбокс. Попытался через SetFocus - не работает. Msgbox выводит, текст очищает, но курсор становится в следующий по порядку элемент. Простой пример в прикрепленном файле. Помогите(((
Выход из текстбокса обрабатываю так:
Код
Private Sub ACC_DATE_Exit(ByVal Cancel As MSForms.ReturnBoolean)
ttext = Me.ACC_DATE.Value
len_ttext = Len(ttext)
If len_ttext <> 10 Then
MsgBox "Дата должна быть в формате dd.mm.yyyy"
UserForm1.ACC_DATE.Value = ""
UserForm1.ACC_DATE.SetFocus
End If
End Sub
Добрый день! Может, кто сталкивался с такой проблемой: на листе Excel есть табличка, данные в которую грузятся из FireBird. Для организации фильтра выборки на листе расположил 2 textboxа, 10 checkboxов и 10 comboboxов. В момент открытия книги на событие Workbook_Open подвязан максос, который из справочников Firebird заполняет checkboxы. За два дня уже второй раз возникает глюк, когда элементы управления перестают работать. Т.е. на них невозможно нажать. Лечится включением режима конструктора и смещением элементов. За 7 лет раньше на разных версиях excel сталкивался раза 2-3, когда отдельная кнопка переставала нажиматься, но там пользователем был сам, поэтому было не критично включить конструктор и сдвинуть кнопку. Здесь приложение пользовательское, такой вариант не подходит.
Добрый день! При переходе на MS Office 2013 обнаружился неприятный момент. На конкретном примере: есть основная программа, которая открывает отчеты со сводными таблицами, подключенными к FireBird, копирует набор необходимых листов в новую книгу, редактирует подключение (отрезает часть данных - нарезает на подразделения) и сохраняет.
В начале программы отключаю DisplayAlerts и ScreenUpdating. Так вот, когда копируются листы в новую книгу, она не становится активной. Не помогает принудительная активация не через переменную: set tmp = Activeworkbook tmp.activate не через имя tmp = Activeworkbook.Name Workbooks(tmp).Activate
активной остается открытая основная книга с отчетом, с которой производятся все действия. Если не отключать ScreenUpdating, то работает нормально, если выключить и перед активацией нужной книги включить: Application.ScreenUpdating = True Workbooks(tmp).Activate Application.ScreenUpdating = False то не помогает.
Может кто-то сталкивался с этой проблемой? до 2013 офиса всегда нормально работало....а тут даже старые макросы работают не так.....