Управление форматами ввода данных с помощью масок ввода
Смотрите также Then Cancel As MSForms.ReturnBoolean)If KeyCode = нехватает пока еще R, 1))) U может не быть формы есть:
(поля) влечет за: Добрый день! цифр, все в( ) 555-0199 ввода. изменить, и выберите ввода, если верно). разделенных точками сВы можете помочь пользователямiL = Asc(«1»)Me.Tag = vbNullString 8 And (Right(t,
заниний в VBA. = False If на компьютереНапример, я-Data собой пересчет параметровПоискал — не верхнем регистре. Данный
В этой статье
В этом случае вЧтобы запустить мастер масок
в контекстном меню
одно из следующихВ приведенной ниже таблице запятой. Назначение каждого
правильно вводить данныеiR = Asc(«9»)End Sub 1) = «-«
EducatedFool
Mid(ST, R, 1)
в формах использу-ControlSource
Общие сведения о масках ввода
и как одно нашел…. тип маски ввода области междугородного кода ввода, нажмите кнопку команду утверждений. перечислены заполнители и из компонентов описано в классические базыElsePrivate Sub TextBox1_KeyDown(ByVal
Or Right(t, 1): По этой ссылке = «.» Or ю разные элементы-Text из исходных данныхИтак, есть ячека помогает, например, правильно используется местозаполнитель 9,ПостроитьКонструкторИногда может потребоваться ввести литералы, используемые в
Три компонента маски ввода
ниже. данных Access, подключивiL = Asc(«0″) KeyCode As MSForms.ReturnInteger, = » «) можно найти пример Mid(ST, R, 1)
-
управления, которые хранятсяпричем, в ‘Text’ эта самая ячейка А1. вводить инвентарные номера поэтому междугородные коды..
-
данные в формате, масках ввода, иПервый компонент является обязательным. маски ввода кiR = Asc(«2») ByVal Shift As Then t = программы, в которой = » « в Ocx Файлах, — это та (поле), но ужеВ нее вводится или заполнять другие необязательны. Кроме того,Нажмите кнопкуВ бланке запроса установите не соответствующему маске. описано их влияние
-
Он представляет собой полям, имеющим строгоEnd If Integer) Left$(t, Len(t) - реализована требуемая вам Then U = типа msmask32.ocx и чушь, которая будет не число, а время. Формат ячейки
формы складского учета. восклицательный знак (!)Изменить список курсор в столбец Маска ввода не на ввод данных.
-
знак или строку определенный формат значений,If KeyCode <Dim iPos As 2): KeyCode = маска ввода: True Next Target
-
прочих… оражаться при наведении пробел, у меня — ВРЕМЯ (т.е.Поскольку адреса электронной почты обусловливает заполнение маски
-
. поля, которое требуется допускает исключений.Знак (последовательность знаков) маски например номера телефонов. iL Or KeyCode Integer 0Private Sub txt1_ГПС_Change()
Знаки, определяющие маски ввода
= S EndДопустим у меня курсора мыши на выдаётся ошибка и…, 13:20:00). могут быть самой
слева направо. |
Откроется диалоговое окно |
изменить. |
Планируется использовать элемент управленияОписание с заполнителями и |
Маска влияет только на |
> iR ThenDim iL AsIf KeyCode <> |
’ГПС государственно пенсионное |
SubЕсли нужно не таких файлов несколько… ячейку. А как естественно идет путьУмотался вводить эти |
разной длины, маски |
(000) AAA-AAAA |
Настройка масок ввода |
Курсор можно поместить в |
«Выбор даты» с |
0 литералами, например круглыми |
ввод значений в |
GoTo NavigateKey Integer |
8 And KeyCode |
страхование 11 цифр на весь лист |
Я раздаю свое |
записать условие Маски указания ошибки до |
«:» — а |
ввода не подходят(206) 555-ТЕЛЕ. любую строку для полем даты иПользователь должен ввести цифру |
скобками, точками и |
Access: она неElseDim iR As |
<> Asc(vbTab) And по маске 354-456-987 распространять допиши проверку |
|
приложение людям и |
ввода в ‘ControlSource’ самого тела процедуры. без них - |
для их проверки |
Предоставляется возможность заменить буквамиПерейдите к новой записи этого поля. |
времени. Маски ввода |
(от 0 до дефисами. меняет способ их |
Когда следует избегать использования масок ввода в Access
Mid$(s, iPos + Integer Len(t) >= 14 56 нужного региона не знаю, стоят я не знаю, В проге написать
-
никак :(( при вводе. Вместо четыре последних цифры в этом окнеНажмите клавишу F4, чтобы
-
несовместимы с таким 9).Второй компонент не является хранения, который записи 1, 1) =Dim s As
Добавление маски ввода в поле таблицы с помощью мастера масок ввода
Then KeyCode =’ SaveInfo ГПС,И не надо! у них эти все мои попытки логические блоки на
Как в ячейку масок ввода рекомендуется телефонного номера в и введите новое открыть окно свойств элементом управления.9 обязательным и определяет от типа данных
-
Chr$(KeyCode) String 0 ‘ ограничение Me.txt1_ГПС В массив их библиотеки. заканчиваются сообщением ПК
-
возможные ошибки пользователя вводить тупо «132000», использовать свойства
-
формате США. Обратите описание в поле поля.Маски ввода можно использоватьПользователь может ввести цифру способ хранения встроенных поля и других
-
iPos = 6With Me.TextBox1 на количество введённых End Sub
-
все! и однуДопустим я пропишу,
-
: ‘Не удается неохота по двум а в итогеПравило проверки внимание на местозаполнитель
-
ОписаниеВ разделе для полей с (от 0 до знаков маски в
-
свойств. Дополнительные сведения
-
End Ifs = .Text символовPrivate Sub txt1_ГПС_KeyPress(ByVal
Добавление маски ввода в запрос
-
процедуру проверки на что при первом задать свойство ‘ControlSource’. причинам: во-первых: придется получить «13:20:00»??и 0 в области.
-
Свойства поля типом данных «Текстовый», 9). поле. Если для
о хранении данныхCase 6, 7iPos = Int(.Tag)
-
Me.txt1_ГПС = t KeyAscii As MSForms.ReturnInteger) всеВстречалось уже. Но
-
запуске regsvr32 зарегит Недопустимое значение свойства’. сувать эту логику( В идеалеСообщение об ошибке кода города, которыйВ поле
-
на вкладке «Числовой» (кроме кода# этого компонента задано в Access см.
Добавление маски ввода в элемент управления формы или отчета
-
If KeyCode < ‘Позиция курсора ‘ записываем обработанный’On Local Error вот в первом эти библиотеки, еслиComanche, а как почти вовсе блоки
-
конечно было бы. делает междугородный кодМаска вводаОбщие репликации), «Денежный» иПользователь может ввести цифру,
-
значение в статье Введение Asc(«0») Or KeyCodeSelect Case iPos текст обратно в
-
Resume Next приближении… их нет. использовать контрол MaskEdit проги, во-вторых все
Создание настраиваемых масок ввода
иметь ячеку такогоУсловие на значение, приведенное обязательным.введите символы ищелкните поле свойства «Дата/время». пробел, знак «плюс»0 в типы данных > Asc(«9») ThenCase -1 textboxIf Not IsNumeric(Chr$(KeyAscii))Как будет выглядеть маска
Настройка масок ввода в мастере
-
Нужно ли еще в свойствах ячейки ошибки пользователей угадать вида __:__:__ ). в таблице ниже,
-
#999 заполнители с помощьюМаска ввода Примечание:
-
или «минус». Если, знаки сохраняются вместе и свойства полей.
GoTo NavigateKeyiPos = 0End Sub
-
Then формата ячеек в как-то настраивать ссылки формы? не возможно… ВотНу суть понятна….
-
гарантирует, что адрес-20 разрешенных знаков из. Если применить маску ввода ничего не ввести,
-
с данными, аВажно:ElseGoTo SetPos
-
Вам над толькоKeyAscii = 0 Excel, если требуется на эти библиотеки
Настройка масок ввода в свойстве поля
-
Что есть ‘ячейка я и хочу Как в эксесс электронной почты будет2000 списка таблицы.Чтобы запустить мастер масок
-
к полю с будет вставлен пробел. если
-
Эта статья относитсяMid$(s, iPos +Case 0 заменить txt1_ГПС на ‘ если в
-
отображать вещественные числа, или формы, сами
формы’? О чём сразу в конструкторе2003 состоять из одного
Примеры масок ввода
Любое положительное или отрицательноеЩелкните стрелку списка ввода, нажмите кнопку
типом данных «Дата/время», |
L1 |
только к классическим |
1, 1) = |
If KeyCode < |
название вашего текстбокса. поле введена не отсекая нули в их увидят (Я ты говоришь? форме для ячейкиСпасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
или нескольких знаков, |
число, включающее не |
Построить для этого поляПользователь должен ввести букву., то знаки отображаются базам данных Access. Chr$(KeyCode) Asc(«0») Or KeyCodeValdemar_ru |
цифра, то отменяем |
конце?К пр |
добавлял компоненты наПрименительно к Экселю (поля) задать маскуЮрий М знака «@», еще более четырех знакови выберите подходящий. Следуйте инструкциям невозможно будет использовать |
? |
без сохранения. Выбрав |
iPos = IIf(iPos > Asc(«3») Then: Спасибо, если ничего ввод символаК примеру при своем компе, где |
есть два места |
ввода по аналогии |
одного или нескольких и не имеющее тип маски. мастера. элемент управленияПользователь может ввести букву. значение данных Access не = 6, 7,GoTo NavigateKey не найду лучше,Else ‘иначе делаем вводе чисел они зарегены) употребления термина ‘форма’: |
как это делается |
aaaann |
разделителей тысяч иНажмите кнопкуВ области переходов щелкните |
Выбор даты |
A |
поддерживают маски ввода. 0)Else |
то воспользуюсь этим |
маску |
1,23 отображается 1,23Просто я попробовал1. Форма как в Access, причем: Есть более сложный еще одного или |
дробной части. |
Закрыть |
правой кнопкой мыши.Пользователь должен ввести букву, можно сэкономить местоОбщие сведения о маскахEnd IfMid$(s, iPos + кодом. |
Использование масок ввода для адресов электронной почты
t = Me.txt1_ГПС1,230 отображается 1,23 на одном компьютере ‘UserForm’ — объект, не обязательно программно вариант через формулу, нескольких знаков. Например,>L????L?000L0. В списке появится форму или отчет,В области навигации щелкните или цифру.
для хранения базы вводаEnd Select 1, 1) =Надо просто обезопасить ‘ считываем текст1,23010 отображается 1,2301 так сделать, что-то создаваемый в VBA-проекте. — я не но без макросов адресЗЕЛЕНЫЙ339М3 новая маска ввода. которые требуется изменить, таблицу правой кнопкойa данных.Знаки, определяющие маски вводаGoTo Repaint Chr$(KeyCode) ввод значений пользовалтеля из textbox в1,0 отображается 1 не получалось… На нём и вижу эту функцию :)[email protected]
МАЙ Р 452Б7 |
В области навигации щелкните |
и выберите в |
мыши и выберитеПользователь может ввести буквуТретий компонент маски ввода |
Когда следует избегать использованияNavigateKey:iPos = 1 |
по максиммуму. переменную t-1,0 отображается -1Не подскажете в |
нужно размещать контрол в параметрах ячейкив ячейке А1будет правильным, аСочетание обязательных (L) и объект правой кнопкой контекстном меню команду
в контекстном меню
support.office.com
Маска ввода ячейки. Хочу вводить время в ячейку по маске
или цифру. также не является
масок ввода вSelect Case KeyCode
End Ifпо этой Маске
If t LikeВозможно ли задать крадце, как это MaskEdit.
(поля) формы… вводишь, например, 131827;[email protected],com необязательных (?) букв
мыши и выберитеКонструктор команду&
обязательным и определяет AccessCase 37 ‘LeftCase 1
поcле полного ее «;» Or t
такую маску, заранее
правильно делается?Привет!
2. Форма какFeel_
в ячейку B1или и обязательных цифр в контекстном меню.
КонструкторПользователь должен ввести какой-либо знак, используемый вДобавление маски ввода в
Select Case iPos
Select Case Left$(.Text, заполнения перемещать курсор Like «;-;» Then спасибо.Подскажите, плииз, можно
способ ввода данных: Есть такой контрол
формулу:
[email protected] (0). Знак «больше»
команду
Щелкните правой кнопкой мыши.
знак или пробел. качестве заполнителя. По
planetaexcel.ru
Маска ввода полю в форме в Excel
поле таблицы сCase 1, 4, 1) стрелками нельзя, а t = t☜✿☞ Михаил ☜✿☞ ли использовать маску в ячейки рабочего — MaskEdit.»=СЦЕПИТЬ(ОКРУГЛВНИЗ(A1/10000;0);»:»;ОКРУГЛВНИЗ((A1-ОКРУГЛВНИЗ(A1/10000;0)*10000)/100;0);»:»;A1-ОКРУГЛВНИЗ(A1/10000;0)*10000-ОКРУГЛВНИЗ((A1-ОКРУГЛВНИЗ(A1/10000;0)*10000)/100;0)*100)» — нет. Если ввести требует вводить всеКонструктор элемент управления, которыйВыберите поле, к которомуC умолчанию в Access помощью мастера масок 7Case «0» если удалить последний & «-» ‘: нет, разрядность после ввода в ячейку листа, альтернативный прямомуAlex77755в результате в адрес электронной почты, буквы в верхнем. требуется изменить, а необходимо применить маскуПользователь может ввести знаки используется знак подчеркивания вводаiPos = iPosiL = Asc(«1») символ и добавить добавляем разделитель после запятой выставляется и листа Excel. Нужно, вводу в ячейки: Есть много способов ячейче B1 получится не соответствующий условию регистре. Чтобы использоватьВыберите поле, для которого затем выберите в ввода. или пробелы. (_). Чтобы задатьСоздание настраиваемых масок ввода
— 1iR = Asc(«9») в первый значение
первых 3 и все чтобы он не листа (меню ‘Данные’, ограничить. Ограничь сами
13:18:27, причем Excel на значение, введенные маску ввода этого необходимо создать настраиваемую контекстном меню командуВ разделе
. , : ; — / другой знак, введитеПримеры масок вводаCase 3, 6Case «1», «2» уже изменяется 6 цифрIгор прокопенко ругался, а сам пункт ‘Форма…’.Comanche,
ячейки на листе автоматически распознает это данные будут отклонены типа, необходимо задать маску ввода.СвойстваСвойства поляРазделитель целой и дробной его в третьемИспользование масок ввода дляiPos = iPosiL = Asc(«0»)т. е. будет
If t Like
: Нужно поставить формат
переделывал, например человек
именно: ‘1. Форма через меню Данные->Проверка… значение как дату. и появится сообщение, для типа данныхВ области «Свойства поля».на вкладке части, групп разрядов, компоненте маски. адресов электронной почты — 2iR = Asc(«9») ;#-;-; # и
«;-;-;» Then t ячеек «общий». вводит : «петров как ‘UserForm’ -
Используй функцию IsNumeric(text)MCH указанное в свойстве
поля таблицы значение щелкните полеНа вкладке
Общие значений дат иПример маски ввода дляМаска ввода — этоEnd SelectCase «3»
если ошибся на = t &Azovian а.а.» а в объект, создаваемый в для проверки значения: =ЛЕВСИМВ(ТЕКСТ(A1;»000000″);2)&»:»&ПСТР(ТЕКСТ(A1;»000000″);3;2)&»:»&ПРАВСИМВ(ТЕКСТ(A1;»000000″);2)
Сообщение об ошибкеТекстовыйМаска вводаВсещелкните поле свойства времени. Выбираемый знак
телефонных номеров в строка символов, указывающаяCase 39 ‘RightiL = Asc(«0″) одну циру и » » ‘: В меню (в ячейке «волшебным образом» VBA-проекте. На нём
введенного в полепокороче будет. Если свойствоилии введите собственнующелкните поле свойстваМаска ввода зависит от региональных формате России: формат допустимых значений
Select Case iPosiR = Asc(«1») захочешь ее отредактировать добавляем разделитель после Excel 2003): «Формат» пишется «Петров А.А.». и нужно размещать по любому событию,aaaannСообщение об ошибкеПоле МЕМО маску.
Маска ввода.
параметров Windows.(999) 000-00-00 входных данных. МаскиCase 0, 3,End Select
с редактированием уже 9 цифр => «Формат ячеек»… На с++ видела контрол MaskEdit.’
которое тебе нужно.: =ЛЕВСИМВ(ТЕКСТ(A1;»000000″);2)&»:»&ПСТР(ТЕКСТ(A1;»000000″);3;2)&»:»&ПРАВСИМВ(ТЕКСТ(A1;»000000″);2)не задано, будет.Чтобы сохранить изменения, нажмите.Чтобы запустить мастер масок>
;0 ввода можно использовать 6If KeyCode <
возникают пролемы.Me.txt1_ГПС = t Откроется диалоговое окно
такое чудо, аНо как!? Научииииии…[img=http://smilies.sofrayt.com/1/a0/baby.gif]Проект Вообщем твори!!!покороче будет{/post}{/quote} выведено стандартное сообщение.00000-9999 сочетание клавиш CTRL+S.Чтобы запустить мастер масок ввода, нажмите кнопкуВсе последующие знаки будут;-: в полях таблицiPos = iPos iL Or KeyCodeValdemar_ru ‘ записываем обработанный «формат ячеек»… на VBA не —> Компоненты —>Alex77755Раза в три
Свойство98115-Для полей числового и ввода, нажмите кнопкуПостроить переведены в верхнийВ маске используются два или запросов, а + 1 > iR Then: Нашел код ,но текст обратно вВ левом поле знаю можно ли ставишь галочку на: Ребятааааааа!!! У меня :)Параметр98115-3007 денежного типов определениеПостроить. регистр. заполнителя — 9 и также в элементахCase 1, 4GoTo NavigateKey
его надо редактировать textbox выбрать (все форматы) так вообще Помогите)))попробуй MS Masked Edit 8 форм, вПомоги, пожалуйста с
CyberForum.ru
Помогите составить маску формата ячеек для Excel
Правило проверкиОбязательный почтовый индекс и маски ввода задается. Следуйте инструкциямВыберите нужный тип маскиВсе последующие знаки будут
0. Заполнитель 9 управления форм и
iPos = iPos
Else
под себя
End If
, а справа
так: первую букву control —> запускаешь каждой порядка 30
«Самым простым макросом»Is Null Or ((Like необязательная область четырехзначного вручную.
мастера. ввода из списка. переведены в нижний
обозначает необязательные цифры отчетов. Маска ввода + 2Mid$(s, iPos +Valdemar_ruEnd Sub
в поле «тип» и буквы после Toolbox (Ctrl+T) —> изменяемых ячеек, яXPraptor
«*[email protected]?*.?*») And (Not расширения.В таблице ниже приведеныВ мастере предусмотрены маскиЩелкните поле регистр. (код города можно
Маска ввода значиний в TextBox
хранится в свойствахEnd Select
1, 1) =: Const MaskFiller AsPrivate Sub txt1_ГПС_KeyDown(ByVal записать: #’##0,;##
пробелов и точек из него тащишь
не хочу как: Для обработки данных Like «*[ ,;]*»))
>L примеры использования масок ввода для наиболееПроба! не вводить), а
объекта.
Case 27 ‘Esc Chr$(KeyCode) String = «__.__.__» KeyCode As MSForms.ReturnInteger,
Количество диезов после переводит в верхний
на свою форму
вы советуете прописывать я использую форму
Сообщение об ошибкеМария
ввода. распространенных вариантов форматирования,
и введите данные,Маска ввода заполняется слева 0 — обязательные.Маску ввода рекомендуется использовать,iPos = 0
iPos = 3’
ByVal Shift As запятой — максимально регистр новый контрол.
для каждой в с кнопочками, полями ВадимМаска ввода однако в некоторых чтобы проверить работу направо, а не
Значение 0 во втором когда вводимые значенияCase 9 ‘TabEnd IfPrivate Sub TextBox1_Enter() Integer)
нужное. Перед нулёмPrivate Sub Worksheet_Change(ByValЕсли MS Masked свойстве ‘Change’ ни
со списком, просто
(необязательно)
Имя или фамилия, перваяОбеспечивает ввод значения в случаях требуется настроить маски.
справа налево. компоненте маски ввода
должны иметь единыйExit SubCase 3With Me.TextBox1
On Local Error диезы можно не Target As Range) Edit в списке IsNumeric типа: полями и т.д.Введите адрес электронной почты
буква которой автоматически виде маску под особыеЧтобы оставить маску ввода указывает на то, формат, например дляEnd SelectIf KeyCode =
If Not (.Text Resume Next ставить (они в Dim S, ST, нет — ищешьm: If Not и т.п. Через со знаком «@»
вводится заглавной.Примечания нужды. Чтобы сделать без изменений, нажмите
Знаки, следующие непосредственно за
что знаки маски полей с номерамиRepaint:
Asc(«0») Or KeyCode Like «##.##.##») Thent = Me.txt1_ГПС этом примере для R, U As
в Сети файл IsNumeric(Прс) Then MsgBox эту форму у
и полным именемISBN 0-&&&&&&&&&-0(000) 000-0000 это, можно либо кнопку обратной косой чертой, следует хранить вместе телефонов из десяти
KeyCode = 0 = Asc(«1») Then.Text = MaskFiller ‘ считываем текст разделения по разрядам). Boolean ST = MSMASK32.OCX (или запрашиваешь
‘Вводите только число, меня заводятся новые домена (пример: [email protected]).ISBN 1-55615-507-7
(206) 555-0199 изменить одну изДалее
отображаются без изменений.
с данными.
цифр. Если пользователь
.Text = sMid$(s, iPos +
End If
из textbox в
Valdemar_ru Target.Value S =
на форуме -
пробел и буквы
данные и идет
Дополнительные сведения о применении
Учетный номер книги с
В данном случае пользователи предопределенных масок мастера
.
»»
Третий компонент маски ввода введет номер, неSetPos: 1, 1) =
If Len(.Tag) = переменную t
: Здравствуйте!!! Нужна помощь UCase(Left(ST, 1)) U
пришлёт кто-нибудь), регистрируешь могут привести к
корректировка. Проблемма: в правил проверки, а
текстовой константой, обязательными
должны вводить код
ввода, либо вручнуюВыберите способ хранения данных.
Знаки, заключенные в двойные
указывает на то,
указав код города,
.SelStart = iPos
Chr$(KeyCode)
0 Then’ если нажаткак можно обойтись
= False For
его в системе
сбою программы’ Прс одну из ячеек также пошаговые инструкции
первой и последней
города, так как
задать свойство «Маска
Чтобы сохранить изменения, нажмите кавычки, отображаются без
что вместо знака
данные не будут
.SelLength = 1
iPos = 4
Application.SendKeys «{INSERT}»
backspace и последний
без MaskEdBox, чтобы
R = 2
через REGSVR32.EXE, и
= Worksheets(‘транспорт’).Range(‘C2’) GoTo
(поле) формы пользователи см. в статье цифрами и произвольной
в соответствующем разделе
ввода» для соответствующего
кнопку изменений. подчеркивания (
приняты в Access,
.Tag = Format$(iPos,
Else
.Tag = «-1″ символ — символ сделать маску ввода
To Len(ST) S повторяешь всё сначала. m End Ifни
вместо исправления числа
Ограничение ввода данных
комбинацией букв и
маски (000 в
поля.
ГотовоМаски ввода — это_
пока пользователь не
«0»)
GoTo NavigateKey
End If
«-» или пробел,
в TextBox
= IIf(U =Удачи.Excel! Как заставить типа MaskEdit в
пихают пробел. В
с помощью правил
знаков между ними. скобках) используется заполнительОткройте объект в конструкторе
.
полезный инструмент, но
) в качестве заполнителя
добавит код города.End WithEnd If
End With
стираем 2 последних
___-___-___ __ (111-111-111 True, S & работать формы в
теле проги. У результате, т.к. у проверки.
>LL00000-0000
0.
и щелкните поле,
В области переходов щелкните
он уместен не
будет использоваться дефис
Маски ввода состоят из
End SubCase 4
End Sub символа — «-«
11)
UCase(Mid(ST, R, 1)), книге, если они
меня в Properties
меня прописано, что
К началу страницы
БД51392-0493(999) 000-0000!
к которому нужно правой кнопкой мыши
во всех случаях.
( одного обязательного и
imort
If Mid$(Me.TextBox1.Text, 4,
Private Sub TextBox1_Exit(ByVal
и последнюю цифру
самому написать код
S & LCase(Mid(ST,
используют библиотеки которых
‘TextBox’ этой ячейки
изменение этой ячейки
vldmlt
Сочетание обязательных букв и
(206) 555-0199
добавить настраиваемую маску запрос, который требуется
Не используйте маски
-
двух необязательных компонентов,:
planetaexcel.ru
1) = «0»
Управление форматами ввода данных с помощью масок ввода
Вы можете помочь пользователям правильно вводить данные в классические базы данных Access, подключив маски ввода к полям, имеющим строго определенный формат значений, например номера телефонов.
Маска влияет только на ввод значений в Access: она не меняет способ их хранения, который записи от типа данных поля и других свойств. Дополнительные сведения о хранении данных в Access см. в статье Введение в типы данных и свойства полей.
Важно: Эта статья относится только к классическим базам данных Access. Веб-приложения и веб-базы данных Access не поддерживают маски ввода.
В этой статье
Общие сведения о масках ввода
Маска ввода — это строка символов, указывающая формат допустимых значений входных данных. Маски ввода можно использовать в полях таблиц или запросов, а также в элементах управления форм и отчетов. Маска ввода хранится в свойствах объекта.
Маску ввода рекомендуется использовать, когда вводимые значения должны иметь единый формат, например для полей с номерами телефонов из десяти цифр. Если пользователь введет номер, не указав код города, данные не будут приняты в Access, пока пользователь не добавит код города.
Три компонента маски ввода
Маски ввода состоят из одного обязательного и двух необязательных компонентов, разделенных точками с запятой. Назначение каждого из компонентов описано ниже.
Первый компонент является обязательным. Он представляет собой знак или строку (последовательность знаков) маски с заполнителями и литералами, например круглыми скобками, точками и дефисами.
Второй компонент не является обязательным и определяет способ хранения встроенных знаков маски в поле. Если для этого компонента задано значение , знаки сохраняются вместе с данными, а если 1, то знаки отображаются без сохранения. Выбрав значение 1, можно сэкономить место для хранения базы данных.
Третий компонент маски ввода также не является обязательным и определяет знак, используемый в качестве заполнителя. По умолчанию в Access используется знак подчеркивания (_). Чтобы задать другой знак, введите его в третьем компоненте маски.
Пример маски ввода для телефонных номеров в формате России: (999) 000-00-00;0;-:
В маске используются два заполнителя — 9 и 0. Заполнитель 9 обозначает необязательные цифры (код города можно не вводить), а 0 — обязательные.
Значение 0 во втором компоненте маски ввода указывает на то, что знаки маски следует хранить вместе с данными.
Третий компонент маски ввода указывает на то, что вместо знака подчеркивания (_) в качестве заполнителя будет использоваться дефис (—).
Знаки, определяющие маски ввода
В приведенной ниже таблице перечислены заполнители и литералы, используемые в масках ввода, и описано их влияние на ввод данных.
Определение маски ввода
Если свойство Формат (Format) управляет тем, как данные отображаются в поле таблицы, то свойство Маска ввода (Input Mask) позволяет контролировать ввод данных в таблицу. И не только контролировать, но и упрощать процесс ввода. Маску используют в том случае, когда вводимые данные должны содержать определенные символы в некоторых позициях вводимой строки. Самым простым и ярким примером таких данных являются номера телефонов. Маска ввода должна обеспечить возможность вводить только цифры номера, а остальные символы (скобки вокруг кода города, дефис между цифрами номера) будут добавляться автоматически. Маска задается с помощью символов, приведенных в табл. 2.12.
Таблица 2.12. Символы для создания масок ввода
Для того чтобы сформировать маску ввода, можно использовать Мастера масок ввода (Input Mask Wizard). Откройте в режиме Конструктора таблицу «Заказы» (Orders). Выделите поле «Дата размещения». Чтобы ввести маску ввода для этого поля, щелкните мышью по ячейке свойства Маска ввода (Input Mask). Нажмите небольшую кнопку с тремя точками (рис. 2.21), которая появится справа (эта кнопка называется кнопкой Построителя и будет встречаться еще во многих местах), и дальше следуйте указаниям мастера:
-
В первом диалоговом окне вы можете выбрать нужную маску из списка (рис. 2.22). Если вы попытаетесь вводить данные в поле Проба (Try It), то сможете увидеть, как будут форматироваться вводимые вами символы. Нажмите кнопку Далее (Next).
Сформированная символьная строка маски отображается в поле Маска ввода (Input Mask) для поля «ДатаРазмещения» (OrderDate) (рис. 2.22). Маска ввода состоит из трех частей:
- символьной строки маски;
- символа 0. Это означает, что введенные в поле данные будут сохраняться вместе со специальными символами. Можно заменить 0 на 1 — тогда специальные символы маски не будут запоминаться в поле;
- символа заполнителя.
Как использовать маску ввода в excel vba?
-2 Cher [2018-04-08 07:54:00]
ПРОЧИТАЙТЕ ВНИМАТЕЛЬНО ВОПРОС, ПОЖАЛУЙСТА, ЭТО РЕКОМЕНДАЦИИ EXCEL VBA. NOT EXCEL
Мне была поручена фиксация ввода даты в форме VBA. Текстовое поле должно содержать имя пользователя в виде MM/DD/YYYY .
Мне нужно использовать маску ввода, не разрешено делать что-то как подтверждение даты после или с использованием календаря. До сих пор я мог использовать упомянутые 2 метода (форматирование формата после использования ISDATE ).
Тем не менее, теперь стало ясно, что это должна быть маска, поэтому ключи отфильтровываются при вводе, причем маска отображается при вводе даты: __/__/____
Там, где вы видите символ подчеркивания, он должен иметь возможность вводить числа и всегда находиться на этих позициях
Есть ли способ сделать это? Я могу найти учебник для маски в Access VBA.
input vba excel-vba excel masking
Этот пост может помочь вам.
Использование входной маски
. Вы можете задаться вопросом, есть ли способ настроить маску ввода, которая автоматически добавит двоеточие. Хорошая новость — да, есть. Плохих новостей нет, нет. Звук запутанный? Позволь мне объяснить.
Вы можете настроить пользовательский формат, который отобразит ваше время в любом формате. Например, вы можете использовать следующие шаги:
- Выберите ячейки, которые вы хотите использовать для ввода времени.
- Выберите » Формат» в меню «Ячейки». Excel отображает диалоговое окно » Формат ячеек «.
- Убедитесь, что отображается вкладка » Число «.
- В списке «Категория» выберите » Пользовательский».
- Замените все, что находится в поле » Тип», с #»:»00 .
- Нажмите OK .
Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохая новость) заключается в том, что ячейка действительно не содержит времени. Если вы введете 230 (за 2:30), она не будет содержать 2:30 как раз — она содержит двести тридцать. Таким образом, вы не можете напрямую использовать содержимое ячейки непосредственно во времени.
Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу для преобразования. Например, если введенное время было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке для преобразования:
Отформатируйте ячейку, которая содержит приведенную выше формулу, чтобы отображать один из различных временных форматов, и все вы настроены.
(Полная статья и многое другое в источнике.)
Сводные таблицы Excel
Если вам часто приходится вводить даты и время в ячейки, то вам должна понравиться идея писать их сокращенно, без точек-дробей – просто как число. Чтобы в заданном диапазоне ячеек листа, например, число 250616 после ввода и нажатия клавиши Enter автоматически превращалось в 25.06.2016.
Как в Excel настроить быстрый ввод даты без разделителей
Для реализации такого возможны два варианта.
Первый – использовать функцию преобразования текста в дату ДАТАЗНАЧ (DATEVALUE) и функции извлечения фрагментов из текста ЛЕВСИМВ (LEFT), ПРАВСИМВ (RIGHT) и ПСТР (MID), чтобы разделить шесть введенных чисел по два, добавить к ним точки и составить из них полноценную дату в соседней ячейке.
Для реализации быстрого ввода даты возможны два варианта
В англоязычном варианте: =DATEVALUE(LEFT(D1;2)&”.”&MID(D1;3;2)&”.”&RIGHT(D1;2)) .
Если же хочется выполнять это преобразование прямо в той же ячейке, куда вводятся числа, то без макроса не обойтись. Для этого щелкните по ярлычку листа, куда будут вводиться даты и время, и выберите команду Исходный текст (View Code). В открывшееся окно редактора Visual Basic вставьте следующий код.
Private Sub Worksheet_Change(ByVal Target As Range) Dim vVal Dim StrVal As String Dim dDate As Date If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range(«A2:A10»)) Is Nothing Then With Target StrVal = Format(.Text, «000000») If IsNumeric(StrVal) And Len(StrVal) = 6 Then Application.EnableEvents = False dDate = DateValue(Left(StrVal, 2) & «/» & Mid(StrVal, 3, 2) & «/» & Right(StrVal, 2)) .NumberFormat = «dd/mm/yyyy» .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate))) End If End With End If Application.EnableEvents = True End Sub
Диапазон A2:A10 в коде замените на свою область листа, куда подобным образом собираетесь вводить даты.
Как использовать маску ввода в Excel VBA?
ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ ВОПРОС, ПОЖАЛУЙСТА, ЭТО НАМЕРЕНИЯ ОТЛИЧАЮТ VBA. НЕ ЭКСКАЛЬНО
Мне было дано задание зафиксировать ввод даты в форме VBA. В текстовом поле пользователь должен ввести дату в MM/DD/YYYY .
Я должен использовать маску ввода, не разрешено делать что-либо в качестве даты подтверждения после или с использованием календаря. До сих пор я мог использовать 2 упомянутых метода (форсирование формата после использования ISDATE ).
Однако теперь стало ясно, что это должна быть маска, поэтому ключи фильтруются при вводе, причем маска отображается при вводе даты: __/__/____
Где вы видите подчеркивание, он должен иметь возможность только вводить цифры, и / всегда находятся на этих позициях
Есть ли способ сделать это? Я могу только найти учебник для маски в Access VBA.
Я гуглил «маску ввода Excel», и 2-й результат был следующим: Использование маски ввода Microsoft Excel, написанной Алленом Уайеттом .
Использование маски ввода
. Вы можете задаться вопросом, есть ли способ установить маску ввода, которая автоматически добавит двоеточие. Хорошие новости — да, есть. Плохих новостей нет, нет. Звук сбивает с толку? Позволь мне объяснить.
Вы можете настроить пользовательский формат, который будет отображать ваше время в любом формате, который вы хотите. Например, вы можете использовать следующие шаги:
- Выберите ячейки, которые вы хотите использовать для ввода времени.
- Выберите « Формат» в меню «Ячейки». В Excel отобразится диалоговое окно « Формат ячеек ».
- Убедитесь, что отображается вкладка Number .
- В списке Категория выберите Пользовательский .
- Замените все, что находится в поле « Тип #»:»00 .
- Нажмите на ОК .
Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохие новости) состоит в том, что ячейка не содержит времени. Если вы введете 230 (для 2:30), оно не будет содержать 2:30 как время — оно содержит двести тридцать. Таким образом, вы не можете использовать содержимое ячейки непосредственно в расчетах времени.
Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу, чтобы сделать преобразования. Например, если время, которое вы ввели, было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке, чтобы выполнить преобразование:
Отформатируйте ячейку, содержащую приведенную выше формулу, чтобы она отображала один из различных форматов времени, и все готово.
(Полная статья и многое другое на источнике .)
Содержание
- Как привести телефонные номера к единому формату?
- Как это сделать?
- Как это работает?
- Проверка текста по маске
- Примеры использования функции
- Excel маска ввода
- Управление форматами ввода данных с помощью масок ввода
- В этой статье
- Общие сведения о масках ввода
- Три компонента маски ввода
- Знаки, определяющие маски ввода
- Определение маски ввода
- Как использовать маску ввода в excel vba?
- Использование входной маски
- Сводные таблицы Excel
- Как использовать маску ввода в Excel VBA?
- Использование маски ввода
Как привести телефонные номера к единому формату?
Как это сделать?
В качестве примера, возьмем номер телефона в виде «9264177054», нам нужно добавить код страны и преобразовать этот номер к виду +7 (926) 417-70-54. Как это сделать? Очень просто!
Для того чтобы создать свой формат данных, переведите курсор в ячейку, к которой вы хотите применить пользовательский формат, и вызовите диалоговое окно Формат ячеек.
Для вызова этого окна используйте сочетание клавиш «Ctrl+1» или нажмите правую клавишу мышки и в контекстном меню выберите пункт «Формат ячеек. «:
В открывшемся окне, во вкладке «Число» выберите пункт «все форматы». В появившееся справа поле Тип: введите маску нужного Вам формата. В нашем примере это будет: +7″ «(#)» «000-00-00. Обратите внимание, что в окошке «Образец» данные поменяли свой вид. Если вас устраивает такой вид данных нажмите «Оk». Данные в указанной ячейке примут соответствующий вид +7 (926) 417-70-54.
Теперь ваш формат сохранен в Excel и его можно использовать для форматирования. Выделите ячейки, к которым надо применить пользовательский формат, и вызовите диалоговое окно Формат ячеек. В списке форматов найдите свой (он будет последним), выделите его и нажмите «Оk».
Как это работает?
На самом деле все очень просто. Excel использует несколько спецсимволов в масках форматов:
0 (ноль) — один обязательный разряд, т.е. это место в маске формата будет заполнено цифрой из числа, которое пользователь введет в ячейку. Если для этого разряда нет числа, то будет выведен ноль. Например, если к числу 23 применить маску 000, то получится 023, а если к дробному числу 23,032016 применить маску 00,000 — получится 23,032.
# (решетка) — один необязательный разряд, т.е. если для него нет числа, то ничего не выводится.
[] — в квадратных скобках, перед маской формата, указывает цвет шрифта. Разрешено использовать следующие цвета: черный, белый, красный, синий, зеленый, жёлтый, голубой.
«» — любой пользовательский текст (млн, уп., м и тому подобные) или любые символы (например, пробелы) — надо обязательно заключать в кавычки.
Источник
Проверка текста по маске
В языке Visual Basic существует один крайне полезный оператор, называемый Like. Он умеет проверять подобие (похожесть) двух текстовых строк. К сожалению, в стандартном наборе функций этот оператор не нашел своего места, но очень легко создать пользовательскую функцию, которая будет это делать.
Откройте редактор Visual Basic, нажав ALT+F11 или выбрав в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor) , вставьте новый модуль (меню Insert — Module) и скопируйте туда текст этой функции:
Закройте редактор Visual Basic и вернитесь в Excel.
Теперь через Вставка — Функция (Insert — Function) в категории Определенные пользователем (User Defined) можно найти нашу функцию MaskCompare и воспользоваться ей. Синтаксис функции следующий:
=MaskCompare(txt; mask; CaseSensitive)
txt — любой текст или ячейка с текстом, которую мы проверяем на соответствие маске
mask — набор символов, которые ищутся в проверяемом тексте. Набор может содержать спецсимволы подстановки:
- * — любое количество любых символов
- ? — один любой символ
- # — любая цифра (0 — 9)
- [список_символов] — любой символ из списка
- [!список_символов] — все символы, кроме содержащихся в списке
Case_Sensitive — необходимо ли учитывать регистр при проверке:
- 1 — регистр символов учитывается
- 0 — регистр символов не учитывается
Примеры использования функции
Использование спецсимволов в маске открывает перед пользователем широчайшие возможности. Вот несколько примеров масок:
- ### — все числа от 0 до 999
- . — все слова из 5 букв
- м*н — все слова, начинающиеся на «м» и заканчивающиеся на «н»
- *[аостр]* — все слова, содержащие хотя бы одну из букв а,о,с,т,р
- *[!abcdefghijklmnopqrstuvwxyz]* — все слова НЕ содержащие английских букв
Источник
Excel маска ввода
Управление форматами ввода данных с помощью масок ввода
Вы можете помочь пользователям правильно вводить данные в классические базы данных Access, подключив маски ввода к полям, имеющим строго определенный формат значений, например номера телефонов.
Маска влияет только на ввод значений в Access: она не меняет способ их хранения, который записи от типа данных поля и других свойств. Дополнительные сведения о хранении данных в Access см. в статье Введение в типы данных и свойства полей.
Важно: Эта статья относится только к классическим базам данных Access. Веб-приложения и веб-базы данных Access не поддерживают маски ввода.
В этой статье
Общие сведения о масках ввода
Маска ввода — это строка символов, указывающая формат допустимых значений входных данных. Маски ввода можно использовать в полях таблиц или запросов, а также в элементах управления форм и отчетов. Маска ввода хранится в свойствах объекта.
Маску ввода рекомендуется использовать, когда вводимые значения должны иметь единый формат, например для полей с номерами телефонов из десяти цифр. Если пользователь введет номер, не указав код города, данные не будут приняты в Access, пока пользователь не добавит код города.
Три компонента маски ввода
Маски ввода состоят из одного обязательного и двух необязательных компонентов, разделенных точками с запятой. Назначение каждого из компонентов описано ниже.
Первый компонент является обязательным. Он представляет собой знак или строку (последовательность знаков) маски с заполнителями и литералами, например круглыми скобками, точками и дефисами.
Второй компонент не является обязательным и определяет способ хранения встроенных знаков маски в поле. Если для этого компонента задано значение , знаки сохраняются вместе с данными, а если 1, то знаки отображаются без сохранения. Выбрав значение 1, можно сэкономить место для хранения базы данных.
Третий компонент маски ввода также не является обязательным и определяет знак, используемый в качестве заполнителя. По умолчанию в Access используется знак подчеркивания (_). Чтобы задать другой знак, введите его в третьем компоненте маски.
Пример маски ввода для телефонных номеров в формате России: (999) 000-00-00;0;-:
В маске используются два заполнителя — 9 и 0. Заполнитель 9 обозначает необязательные цифры (код города можно не вводить), а 0 — обязательные.
Значение 0 во втором компоненте маски ввода указывает на то, что знаки маски следует хранить вместе с данными.
Третий компонент маски ввода указывает на то, что вместо знака подчеркивания (_) в качестве заполнителя будет использоваться дефис (—).
Знаки, определяющие маски ввода
В приведенной ниже таблице перечислены заполнители и литералы, используемые в масках ввода, и описано их влияние на ввод данных.
Определение маски ввода
Если свойство Формат (Format) управляет тем, как данные отображаются в поле таблицы, то свойство Маска ввода (Input Mask) позволяет контролировать ввод данных в таблицу. И не только контролировать, но и упрощать процесс ввода. Маску используют в том случае, когда вводимые данные должны содержать определенные символы в некоторых позициях вводимой строки. Самым простым и ярким примером таких данных являются номера телефонов. Маска ввода должна обеспечить возможность вводить только цифры номера, а остальные символы (скобки вокруг кода города, дефис между цифрами номера) будут добавляться автоматически. Маска задается с помощью символов, приведенных в табл. 2.12.
Таблица 2.12. Символы для создания масок ввода
Для того чтобы сформировать маску ввода, можно использовать Мастера масок ввода (Input Mask Wizard). Откройте в режиме Конструктора таблицу «Заказы» (Orders). Выделите поле «Дата размещения». Чтобы ввести маску ввода для этого поля, щелкните мышью по ячейке свойства Маска ввода (Input Mask). Нажмите небольшую кнопку с тремя точками (рис. 2.21), которая появится справа (эта кнопка называется кнопкой Построителя и будет встречаться еще во многих местах), и дальше следуйте указаниям мастера:
- В первом диалоговом окне вы можете выбрать нужную маску из списка (рис. 2.22). Если вы попытаетесь вводить данные в поле Проба (Try It), то сможете увидеть, как будут форматироваться вводимые вами символы. Нажмите кнопку Далее (Next).
Сформированная символьная строка маски отображается в поле Маска ввода (Input Mask) для поля «ДатаРазмещения» (OrderDate) (рис. 2.22). Маска ввода состоит из трех частей:
- символьной строки маски;
- символа 0. Это означает, что введенные в поле данные будут сохраняться вместе со специальными символами. Можно заменить 0 на 1 — тогда специальные символы маски не будут запоминаться в поле;
- символа заполнителя.
Как использовать маску ввода в excel vba?
-2 Cher [2018-04-08 07:54:00]
ПРОЧИТАЙТЕ ВНИМАТЕЛЬНО ВОПРОС, ПОЖАЛУЙСТА, ЭТО РЕКОМЕНДАЦИИ EXCEL VBA. NOT EXCEL
Мне была поручена фиксация ввода даты в форме VBA. Текстовое поле должно содержать имя пользователя в виде MM/DD/YYYY .
Мне нужно использовать маску ввода, не разрешено делать что-то как подтверждение даты после или с использованием календаря. До сих пор я мог использовать упомянутые 2 метода (форматирование формата после использования ISDATE ).
Тем не менее, теперь стало ясно, что это должна быть маска, поэтому ключи отфильтровываются при вводе, причем маска отображается при вводе даты: __/__/____
Там, где вы видите символ подчеркивания, он должен иметь возможность вводить числа и всегда находиться на этих позициях
Есть ли способ сделать это? Я могу найти учебник для маски в Access VBA.
input vba excel-vba excel masking
Этот пост может помочь вам.
Использование входной маски
. Вы можете задаться вопросом, есть ли способ настроить маску ввода, которая автоматически добавит двоеточие. Хорошая новость — да, есть. Плохих новостей нет, нет. Звук запутанный? Позволь мне объяснить.
Вы можете настроить пользовательский формат, который отобразит ваше время в любом формате. Например, вы можете использовать следующие шаги:
- Выберите ячейки, которые вы хотите использовать для ввода времени.
- Выберите » Формат» в меню «Ячейки». Excel отображает диалоговое окно » Формат ячеек «.
- Убедитесь, что отображается вкладка » Число «.
- В списке «Категория» выберите » Пользовательский».
- Замените все, что находится в поле » Тип», с #»:»00 .
- Нажмите OK .
Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохая новость) заключается в том, что ячейка действительно не содержит времени. Если вы введете 230 (за 2:30), она не будет содержать 2:30 как раз — она содержит двести тридцать. Таким образом, вы не можете напрямую использовать содержимое ячейки непосредственно во времени.
Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу для преобразования. Например, если введенное время было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке для преобразования:
Отформатируйте ячейку, которая содержит приведенную выше формулу, чтобы отображать один из различных временных форматов, и все вы настроены.
(Полная статья и многое другое в источнике.)
Сводные таблицы Excel
Если вам часто приходится вводить даты и время в ячейки, то вам должна понравиться идея писать их сокращенно, без точек-дробей – просто как число. Чтобы в заданном диапазоне ячеек листа, например, число 250616 после ввода и нажатия клавиши Enter автоматически превращалось в 25.06.2016.
Как в Excel настроить быстрый ввод даты без разделителей
Для реализации такого возможны два варианта.
Первый – использовать функцию преобразования текста в дату ДАТАЗНАЧ (DATEVALUE) и функции извлечения фрагментов из текста ЛЕВСИМВ (LEFT), ПРАВСИМВ (RIGHT) и ПСТР (MID), чтобы разделить шесть введенных чисел по два, добавить к ним точки и составить из них полноценную дату в соседней ячейке.
Для реализации быстрого ввода даты возможны два варианта
В англоязычном варианте: =DATEVALUE(LEFT(D1;2)&”.”&MID(D1;3;2)&”.”&RIGHT(D1;2)) .
Если же хочется выполнять это преобразование прямо в той же ячейке, куда вводятся числа, то без макроса не обойтись. Для этого щелкните по ярлычку листа, куда будут вводиться даты и время, и выберите команду Исходный текст (View Code). В открывшееся окно редактора Visual Basic вставьте следующий код.
Private Sub Worksheet_Change(ByVal Target As Range) Dim vVal Dim StrVal As String Dim dDate As Date If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range(«A2:A10»)) Is Nothing Then With Target StrVal = Format(.Text, «000000») If IsNumeric(StrVal) And Len(StrVal) = 6 Then Application.EnableEvents = False dDate = DateValue(Left(StrVal, 2) & «/» & Mid(StrVal, 3, 2) & «/» & Right(StrVal, 2)) .NumberFormat = «dd/mm/yyyy» .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate))) End If End With End If Application.EnableEvents = True End Sub
Диапазон A2:A10 в коде замените на свою область листа, куда подобным образом собираетесь вводить даты.
Как использовать маску ввода в Excel VBA?
ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ ВОПРОС, ПОЖАЛУЙСТА, ЭТО НАМЕРЕНИЯ ОТЛИЧАЮТ VBA. НЕ ЭКСКАЛЬНО
Мне было дано задание зафиксировать ввод даты в форме VBA. В текстовом поле пользователь должен ввести дату в MM/DD/YYYY .
Я должен использовать маску ввода, не разрешено делать что-либо в качестве даты подтверждения после или с использованием календаря. До сих пор я мог использовать 2 упомянутых метода (форсирование формата после использования ISDATE ).
Однако теперь стало ясно, что это должна быть маска, поэтому ключи фильтруются при вводе, причем маска отображается при вводе даты: __/__/____
Где вы видите подчеркивание, он должен иметь возможность только вводить цифры, и / всегда находятся на этих позициях
Есть ли способ сделать это? Я могу только найти учебник для маски в Access VBA.
Я гуглил «маску ввода Excel», и 2-й результат был следующим: Использование маски ввода Microsoft Excel, написанной Алленом Уайеттом .
Использование маски ввода
. Вы можете задаться вопросом, есть ли способ установить маску ввода, которая автоматически добавит двоеточие. Хорошие новости — да, есть. Плохих новостей нет, нет. Звук сбивает с толку? Позволь мне объяснить.
Вы можете настроить пользовательский формат, который будет отображать ваше время в любом формате, который вы хотите. Например, вы можете использовать следующие шаги:
- Выберите ячейки, которые вы хотите использовать для ввода времени.
- Выберите « Формат» в меню «Ячейки». В Excel отобразится диалоговое окно « Формат ячеек ».
- Убедитесь, что отображается вкладка Number .
- В списке Категория выберите Пользовательский .
- Замените все, что находится в поле « Тип #»:»00 .
- Нажмите на ОК .
Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохие новости) состоит в том, что ячейка не содержит времени. Если вы введете 230 (для 2:30), оно не будет содержать 2:30 как время — оно содержит двести тридцать. Таким образом, вы не можете использовать содержимое ячейки непосредственно в расчетах времени.
Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу, чтобы сделать преобразования. Например, если время, которое вы ввели, было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке, чтобы выполнить преобразование:
Отформатируйте ячейку, содержащую приведенную выше формулу, чтобы она отображала один из различных форматов времени, и все готово.
(Полная статья и многое другое на источнике .)
Источник
Создание маски ввода в TextBox с помощью кода VBA Excel на примере номера телефона и номера паспорта. Применимо для набора номера с клавиатуры.
В отличие от VBA Access в VBA Excel нет свойства InputMask объекта TextBox. Поэтому, чтобы добавить подобие маски для TextBox в VBA Excel, приходится писать дополнительную процедуру, контролирующую действия пользователя и добавляющую в нужные места вводимого номера знаки-разделители.
В следующих примерах мы будем создавать простые маски ввода в TextBox с помощью события TextBox_Change и оператора Select Case. Маска будет добавляться при вводе символов с клавиатуры. При вставке номера из буфера обмена, добавление маски не предусмотрено.
Мы не будем добавлять автоматическую проверку вводимого знака (цифра или другой символ), так как после ввода с клавиатуры в любом случае требуется зрительная проверка введенного номера.
Также, при редактировании полностью введенного номера, не стоит удалять более 1 цифры, иначе структура маски может будет нарушена.
Маска ввода номера телефона
Простой код для создания маски ввода номера телефона в TextBox в формате «+7(000)000-00-00»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Private Sub TextBox1_Change() With TextBox1 Select Case Len(.Text) Case 1 ‘После ввода первого знака добавляем перед ним код страны и скобку .Text = «+7(« & .Text Case 6 ‘После ввода шестого знака добавляем в конце скобку .Text = .Text & «)» Case 10, 13 ‘После ввода десятого и тринадцатого знака добавляем в конце дефис .Text = .Text & «-« Case 17 ‘Удаляем семнадцатый знак сразу после его ввода .Text = Left(.Text, 16) End Select End With End Sub |
Строки кода VBA Excel:
Case 17 ‘Удаляем семнадцатый знак сразу после его ввода .Text = Left(.Text, 16) |
ограничивают длину строки, вводимой в TextBox, их можно заменить на установку максимальной длины при инициализации формы:
Private Sub UserForm_Initialize() TextBox1.MaxLength = 16 End Sub |
Если ограничение строки установить при инициализации формы, при ручном редактировании введенного номера можно удалять две цифры без риска нарушить структуру маски.
Маска ввода номера паспорта
Простой код для создания маски ввода номера паспорта в TextBox в формате «00 00 000000»:
Private Sub TextBox2_Change() With TextBox2 Select Case Len(.Text) Case 2, 5 ‘После ввода первого и пятого знака добавляем в конце пробел .Text = .Text & » « Case 13 ‘Удаляем тринадцатый знак сразу после его ввода .Text = Left(.Text, 12) End Select End With End Sub |
Если ограничение строки установить при инициализации формы:
Private Sub UserForm_Initialize() TextBox2.MaxLength = 12 End Sub |
тогда при ручном редактировании введенного номера можно удалять две цифры без риска нарушить структуру маски.
При необходимости Вы можете легко добавить к стандартным числовым форматам Excel свои собственные. Для этого выделите ячейки, к которым надо применить пользовательский формат, щелкните по ним правой кнопкой мыши и выберите в контекстном меню команду Формат ячеек (Format Cells) — вкладка Число (Number), далее — Все форматы (Custom):
В появившееся справа поле Тип: введите маску нужного вам формата из последнего столбца этой таблицы:
Как это работает…
На самом деле все очень просто. Как Вы уже, наверное, заметили, Excel использует несколько спецсимволов в масках форматов:
- 0 (ноль) — одно обязательное знакоместо (разряд), т.е. это место в маске формата будет заполнено цифрой из числа, которое пользователь введет в ячейку. Если для этого знакоместа нет числа, то будет выведен ноль. Например, если к числу 12 применить маску 0000, то получится 0012, а если к числу 1,3456 применить маску 0,00 — получится 1,35.
- # (решетка) — одно необязательное знакоместо — примерно то же самое, что и ноль, но если для знакоместа нет числа, то ничего не выводится
- (пробел) — используется как разделитель групп разрядов по три между тысячами, миллионами, миллиардами и т.д.
- [ ] — в квадратных скобках перед маской формата можно указать цвет шрифта. Разрешено использовать следующие цвета: черный, белый, красный, синий, зеленый, жёлтый, голубой.
Плюс пара простых правил:
- Любой пользовательский текст (кг, чел, шт и тому подобные) или символы (в том числе и пробелы) — надо обязательно заключать в кавычки.
- Можно указать несколько (до 4-х) разных масок форматов через точку с запятой. Тогда первая из масок будет применяться к ячейке, если число в ней положительное, вторая — если отрицательное, третья — если содержимое ячейки равно нулю и четвертая — если в ячейке не число, а текст (см. выше пример с температурой).
Ссылки по теме
- Как скрыть содержимое ячейки с помощью пользовательского формата