Текстовые маски в 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

Этот пост может помочь вам.

Использование входной маски

. Вы можете задаться вопросом, есть ли способ настроить маску ввода, которая автоматически добавит двоеточие. Хорошая новость — да, есть. Плохих новостей нет, нет. Звук запутанный? Позволь мне объяснить.

Вы можете настроить пользовательский формат, который отобразит ваше время в любом формате. Например, вы можете использовать следующие шаги:

  1. Выберите ячейки, которые вы хотите использовать для ввода времени.
  2. Выберите » Формат» в меню «Ячейки». Excel отображает диалоговое окно » Формат ячеек «.
  3. Убедитесь, что отображается вкладка » Число «.
  4. В списке «Категория» выберите » Пользовательский».
  5. Замените все, что находится в поле » Тип», с #»:»00 .
  6. Нажмите 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, написанной Алленом Уайеттом .

Использование маски ввода

. Вы можете задаться вопросом, есть ли способ установить маску ввода, которая автоматически добавит двоеточие. Хорошие новости — да, есть. Плохих новостей нет, нет. Звук сбивает с толку? Позволь мне объяснить.

Вы можете настроить пользовательский формат, который будет отображать ваше время в любом формате, который вы хотите. Например, вы можете использовать следующие шаги:

  1. Выберите ячейки, которые вы хотите использовать для ввода времени.
  2. Выберите « Формат» в меню «Ячейки». В Excel отобразится диалоговое окно « Формат ячеек ».
  3. Убедитесь, что отображается вкладка Number .
  4. В списке Категория выберите Пользовательский .
  5. Замените все, что находится в поле « Тип #»:»00 .
  6. Нажмите на ОК .

Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохие новости) состоит в том, что ячейка не содержит времени. Если вы введете 230 (для 2:30), оно не будет содержать 2:30 как время — оно содержит двести тридцать. Таким образом, вы не можете использовать содержимое ячейки непосредственно в расчетах времени.

Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу, чтобы сделать преобразования. Например, если время, которое вы ввели, было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке, чтобы выполнить преобразование:

Отформатируйте ячейку, содержащую приведенную выше формулу, чтобы она отображала один из различных форматов времени, и все готово.

(Полная статья и многое другое на источнике .)

Управление форматами ввода данных с помощью масок ввода

​Смотрите также​ 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​

Общие сведения о масках ввода

​ и как одно​ нашел….​ тип маски ввода​ области междугородного кода​ ввода, нажмите кнопку​ команду​ утверждений.​ перечислены заполнители и​ из компонентов описано​ в классические базы​Else​Private 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​​ 0​​Private Sub txt1_ГПС_Change()​

Знаки, определяющие маски ввода

​ = S End​Допустим у меня​ курсора мыши на​ выдаётся ошибка и…,​ 13:20:00).​ могут быть самой​

​ слева направо.​

​Откроется диалоговое окно​

​ изменить.​

​Планируется использовать элемент управления​Описание​ с заполнителями и​

​Маска влияет только на​

​ > iR Then​Dim iL As​If KeyCode <>​

​’ГПС государственно пенсионное​

​ SubЕсли нужно не​ таких файлов несколько…​ ячейку. А как​ естественно идет путь​Умотался вводить эти​

​ разной длины, маски​

​(000) AAA-AAAA​

​Настройка масок ввода​

​Курсор можно поместить в​

​ «Выбор даты» с​

​0​ литералами, например круглыми​

​ ввод значений в​

​GoTo NavigateKey​ Integer​

​ 8 And KeyCode​

​ страхование 11 цифр​ на весь лист​

​Я раздаю свое​

​ записать условие Маски​ указания ошибки до​

​ «:» — а​

​ ввода не подходят​(206) 555-ТЕЛЕ​.​ любую строку для​ полем даты и​Пользователь должен ввести цифру​

​ скобками, точками и​

​ Access: она не​Else​Dim 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​​ обязательным и определяет​​ от типа данных​

  1. ​ Chr$(KeyCode)​ String​ 0 ‘ ограничение​ Me.txt1_ГПС​ В массив их​​ библиотеки.​​ заканчиваются сообщением ПК​

  2. ​ возможные ошибки пользователя​ вводить тупо «132000»,​ использовать свойства​

  3. ​ формате США. Обратите​​ описание в поле​​ поля.​​Маски ввода можно использовать​​Пользователь может ввести цифру​​ способ хранения встроенных​​ поля и других​

  4. ​iPos = 6​With Me.TextBox1​​ на количество введённых​ Кнопка ​End Sub​

  5. ​ все! и одну​Допустим я пропишу,​

    Мастер масок ввода в классической базе данных Access

  6. ​ : ‘Не удается​​ неохота по двум​​ а в итоге​Правило проверки​ внимание на местозаполнитель​

  7. ​Описание​В разделе​ для полей с​​ (от 0 до​​ знаков маски в​

  8. ​ свойств. Дополнительные сведения​

  9. ​End If​s = .Text​​ символов​​Private Sub txt1_ГПС_KeyPress(ByVal​

Добавление маски ввода в запрос

  1. ​ процедуру проверки на​ что при первом​ задать свойство ‘ControlSource’.​ причинам: во-первых: придется​ получить «13:20:00»??​и​​ 0 в области​​.​

  2. ​Свойства поля​ типом данных «Текстовый»,​ 9).​ поле. Если для​

    ​ о хранении данных​Case 6, 7​iPos = Int(.Tag)​

  3. ​Me.txt1_ГПС = t​ KeyAscii As MSForms.ReturnInteger)​ всеВстречалось уже. Но​

  4. ​ запуске regsvr32 зарегит​​ Недопустимое значение свойства’.​​ сувать эту логику​​( В идеале​​Сообщение об ошибке​​ кода города, который​​В поле​

  5. ​на вкладке​ «Числовой» (кроме кода​​#​ Кнопка ​ этого компонента задано​ в Access см.​

Добавление маски ввода в элемент управления формы или отчета

  1. ​If KeyCode <​ ‘Позиция курсора​ ‘ записываем обработанный​’On Local Error​ вот в первом​ эти библиотеки, если​​Comanche, а как​​ почти вовсе блоки​

  2. ​ конечно было бы​.​ делает междугородный код​Маска ввода​Общие​​ репликации), «Денежный» и​​Пользователь может ввести цифру,​

  3. ​ значение​​ в статье Введение​​ Asc(«0») Or KeyCode​​Select Case iPos​​ текст обратно в​

  4. ​ Resume Next​ приближении…​​ их нет.​ Кнопка ​ использовать контрол MaskEdit​ проги, во-вторых все​

Создание настраиваемых масок ввода

​ иметь ячеку такого​Условие на значение, приведенное​ обязательным.​введите символы и​щелкните поле свойства​ «Дата/время».​ пробел, знак «плюс»​0​ в типы данных​ > Asc(«9») Then​Case -1​ textbox​If Not IsNumeric(Chr$(KeyAscii))​Как будет выглядеть маска​

Настройка масок ввода в мастере

  1. ​Нужно ли еще​ в свойствах ячейки​ ошибки пользователей угадать​ вида __:__:__ ).​ в таблице ниже,​

  2. ​#999​ заполнители с помощью​​Маска ввода​ Кнопка ​Примечание:​

  3. ​ или «минус». Если​​, знаки сохраняются вместе​​ и свойства полей.​

    ​GoTo NavigateKey​​iPos = 0​​End Sub​

  4. ​ Then​ формата ячеек в​ как-то настраивать ссылки​ формы?​​ не возможно… Вот​​Ну суть понятна….​

  5. ​ гарантирует, что адрес​​-20​​ разрешенных знаков из​.​ Если применить маску ввода​ ничего не ввести,​

  6. ​ с данными, а​​Важно:​​Else​GoTo SetPos​

  7. ​Вам над только​​KeyAscii = 0​​ Excel, если требуется​ на эти библиотеки​

Настройка масок ввода в свойстве поля

  1. ​Что есть ‘ячейка​ я и хочу​ Как в эксесс​ электронной почты будет​2000​​ списка таблицы.​​Чтобы запустить мастер масок​

  2. ​ к полю с​ будет вставлен пробел.​ если​

  3. ​  Эта статья относится​Mid$(s, iPos +​​Case 0​​ заменить txt1_ГПС на​ ‘ если в​

  4. ​ отображать вещественные числа,​ или формы, сами​

​ формы’? О чём​ сразу в конструкторе​2003​ состоять из одного​

Примеры масок ввода

​Любое положительное или отрицательное​Щелкните стрелку списка​ ввода, нажмите кнопку​

​ типом данных «Дата/время»,​

​L​1​

​ только к классическим​

​ 1, 1) =​

​If KeyCode <​

​ название вашего текстбокса.​ поле введена не​ отсекая нули в​ их увидят (Я​ ты говоришь?​ форме для ячейки​Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!​

​ или нескольких знаков,​

​ число, включающее не​
​Тип маски:​

​Построить​ для этого поля​Пользователь должен ввести букву.​, то знаки отображаются​ базам данных Access.​ Chr$(KeyCode)​ Asc(«0») Or KeyCode​Valdemar_ru​

​ цифра, то отменяем​

​ конце?К пр​

​ добавлял компоненты на​Применительно к Экселю​ (поля) задать маску​Юрий М​ знака «@», еще​ более четырех знаков​и выберите подходящий​. Следуйте инструкциям​ невозможно будет использовать​

​?​

​ без сохранения. Выбрав​
​ Веб-приложения и веб-базы​

​iPos = IIf(iPos​ > Asc(«3») Then​: Спасибо, если ничего​ ввод символа​К примеру при​ своем компе, где​

​ есть два места​

​ ввода по аналогии​
​: См. в «Приемах»:​

​ одного или нескольких​ и не имеющее​ тип маски.​ мастера.​ элемент управления​Пользователь может ввести букву.​ значение​ данных Access не​ = 6, 7,​GoTo NavigateKey​ не найду лучше,​​Else ‘иначе делаем​​ вводе чисел​​ они зарегены)​​ употребления термина ‘форма’:​

​ как это делается​

​aaaann​
​ знаков, точки и​

​ разделителей тысяч и​Нажмите кнопку​В области переходов щелкните​

​Выбор даты​

​A​
​1​

​ поддерживают маски ввода.​ 0)​Else​

​ то воспользуюсь этим​

​ маску​

​1,23 отображается 1,23​Просто я попробовал​1. Форма как​ в Access, причем​: Есть более сложный​ еще одного или​

​ дробной части.​

​Закрыть​

​ правой кнопкой мыши​.​Пользователь должен ввести букву​, можно сэкономить место​Общие сведения о масках​End If​Mid$(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​ необязательных (?) букв​

​ мыши и выберите​Конструктор​ команду​&​
​ обязательным и определяет​ Access​Case 37 ‘Left​Case 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​ помощью мастера масок​ 7​Case «0»​ если удалить последний​ & «-» ‘​: нет, разрядность после​ ввода в ячейку​ листа, альтернативный прямому​Alex77755​в результате в​ адрес электронной почты,​ буквы в верхнем​.​ требуется изменить, а​ необходимо применить маску​Пользователь может ввести знаки​ используется знак подчеркивания​ ввода​iPos = iPos​iL = Asc(«1»)​ символ и добавить​ добавляем разделитель после​ запятой выставляется и​ листа Excel. Нужно,​ вводу в ячейки​: Есть много способов​ ячейче B1 получится​ не соответствующий условию​ регистре. Чтобы использовать​Выберите поле, для которого​ затем выберите в​ ввода.​ или пробелы.​ (_). Чтобы задать​Создание настраиваемых масок ввода​

​ — 1​​iR = Asc(«9»)​ в первый значение​

​ первых 3 и​​ все​ чтобы он не​ листа (меню ‘Данные’,​ ограничить. Ограничь сами​
​ 13:18:27, причем Excel​ на значение, введенные​ маску ввода этого​ необходимо создать настраиваемую​ контекстном меню команду​В разделе​

​. , : ; — /​​ другой знак, введите​Примеры масок ввода​Case 3, 6​Case «1», «2»​ уже изменяется​ 6 цифр​Iгор прокопенко​ ругался, а сам​ пункт ‘Форма…’.Comanche,​
​ ячейки на листе​ автоматически распознает это​ данные будут отклонены​ типа, необходимо задать​ маску ввода.​Свойства​Свойства поля​Разделитель целой и дробной​ его в третьем​Использование масок ввода для​iPos = iPos​iL = Asc(«0»)​т. е. будет​
​If t Like​
​: Нужно поставить формат​
​ переделывал, например человек​
​именно: ‘1. Форма​ через меню Данные->Проверка…​ значение как дату.​ и появится сообщение,​ для типа данных​В области «Свойства поля»​.​на вкладке​ части, групп разрядов,​ компоненте маски.​ адресов электронной почты​ — 2​iR = Asc(«9»)​ ;#-;-; # и​
​ «;-;-;» Then t​ ячеек «общий».​ вводит : «петров​ как ‘UserForm’ -​

​Используй функцию IsNumeric(text)​MCH​ указанное в свойстве​
​ поля таблицы значение​ щелкните поле​На вкладке​
​Общие​ значений дат и​Пример маски ввода для​Маска ввода — это​End Select​Case «3»​
​ если ошибся на​ = t &​Azovian​ а.а.» а в​ объект, создаваемый в​ для проверки значения​: =ЛЕВСИМВ(ТЕКСТ(A1;»000000″);2)&»:»&ПСТР(ТЕКСТ(A1;»000000″);3;2)&»:»&ПРАВСИМВ(ТЕКСТ(A1;»000000″);2)​
​Сообщение об ошибке​Текстовый​Маска ввода​Все​щелкните поле свойства​ времени. Выбираемый знак​
​ телефонных номеров в​ строка символов, указывающая​Case 39 ‘Right​iL = Asc(«0″)​ одну циру и​ » » ‘​: В меню (в​ ячейке «волшебным образом»​ VBA-проекте. На нём​
​ введенного в поле​покороче будет​. Если свойство​или​и введите собственную​щелкните поле свойства​Маска ввода​ зависит от региональных​ формате России:​ формат допустимых значений​
​Select Case iPos​iR = 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​ ввода можно использовать​ 6​If KeyCode <​
​ возникают пролемы.​Me.txt1_ГПС = t​ Откроется диалоговое окно​
​ такое чудо, а​Но как!? Научииииии…[img=http://smilies.sofrayt.com/1/a0/baby.gif]Проект​ Вообщем твори!!!​покороче будет{/post}{/quote}​ выведено стандартное сообщение.​00000-9999​ сочетание клавиш CTRL+S.​Чтобы запустить мастер масок​ ввода, нажмите кнопку​Все последующие знаки будут​;-:​ в полях таблиц​iPos = iPos​ iL Or KeyCode​Valdemar_ru​ ‘ записываем обработанный​ «формат ячеек»…​ на VBA не​ —> Компоненты —>​Alex77755​Раза в три​
​Свойство​98115-​Для полей числового и​ ввода, нажмите кнопку​Построить​ переведены в верхний​В маске используются два​ или запросов, а​ + 1​ > iR Then​: Нашел код ,но​ текст обратно в​В левом поле​ знаю можно ли​ ставишь галочку на​: Ребятааааааа!!! У меня​ :)​Параметр​98115-3007​ денежного типов определение​Построить​.​ регистр.​ заполнителя — 9 и​ также в элементах​Case 1, 4​GoTo NavigateKey​
​ его надо редактировать​ textbox​ выбрать (все форматы)​ так вообще Помогите)))попробуй​ MS Masked Edit​ 8 форм, в​Помоги, пожалуйста с​

CyberForum.ru

Помогите составить маску формата ячеек для Excel

​Правило проверки​Обязательный почтовый индекс и​ маски ввода задается​. Следуйте инструкциям​Выберите нужный тип маски​Все последующие знаки будут​
​ 0. Заполнитель 9​ управления форм и​
​iPos = iPos​
​Else​
​ под себя​
​End If​
​ , а справа​
​ так: первую букву​ control —> запускаешь​ каждой порядка 30​

​ «Самым простым макросом»​​Is Null Or ((Like​ необязательная область четырехзначного​ вручную.​

​ мастера.​​ ввода из списка.​ переведены в нижний​

​ обозначает необязательные цифры​​ отчетов. Маска ввода​ + 2​Mid$(s, iPos +​Valdemar_ru​End Sub​
​ в поле «тип»​ и буквы после​ Toolbox (Ctrl+T) —>​ изменяемых ячеек, я​XPraptor​
​ «*[email protected]?*.?*») And (Not​ расширения.​В таблице ниже приведены​В мастере предусмотрены маски​Щелкните поле​ регистр.​ (код города можно​

Маска ввода значиний в TextBox

​ хранится в свойствах​​End Select​
​ 1, 1) =​: Const MaskFiller As​Private 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 ‘Tab​End If​Private Sub TextBox1_Enter()​ Integer)​
​ нужное. Перед нулём​Private Sub Worksheet_Change(ByVal​Если MS Masked​ свойстве ‘Change’ ни​
​ со списком, просто​
​(необязательно)​

​Имя или фамилия, первая​Обеспечивает ввод значения в​ случаях требуется настроить​ маски.​
​ справа налево.​ компоненте маски ввода​
​ должны иметь единый​Exit Sub​Case 3​With Me.TextBox1​

​On Local Error​ диезы можно не​ Target As Range)​ Edit в списке​ IsNumeric типа:​ полями и т.д.​Введите адрес электронной почты​
​ буква которой автоматически​ виде​ маску под особые​Чтобы оставить маску ввода​​ указывает на то,​ формат, например для​End Select​If KeyCode =​

​If Not (.Text​ Resume Next​ ставить (они в​ Dim S, ST,​ нет — ищешь​m: If Not​ и т.п. Через​ со знаком «@»​
​ вводится заглавной.​Примечания​ нужды. Чтобы сделать​ без изменений, нажмите​
​Знаки, следующие непосредственно за​

​ что знаки маски​ полей с номерами​Repaint:​

​ Asc(«0») Or KeyCode​​ Like «##.##.##») Then​t = 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 = s​Mid$(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 With​End If​
​End With​
​ стираем 2 последних​
​___-___-___ __ (111-111-111​ True, S &​ работать формы в​
​ теле проги. У​ результате, т.к. у​ проверки.​
​>LL00000-0000​
​ 0.​
​ и щелкните поле,​
​В области переходов щелкните​
​ он уместен не​
​ будет использоваться дефис​
​Маски ввода состоят из​
​End Sub​Case 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»​

Проверка текста по маске

В языке Visual Basic существует один крайне полезный оператор, называемый Like. Он умеет проверять подобие (похожесть) двух текстовых строк. К сожалению, в стандартном наборе функций этот оператор не нашел своего места, но очень легко создать пользовательскую функцию, которая будет это делать.

Откройте редактор Visual Basic, нажав ALT+F11 или выбрав в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor), вставьте новый модуль (меню Insert — Module) и скопируйте туда текст этой функции:

Function MaskCompare(txt As String, mask As String, CaseSensitive As Boolean)
    If Not CaseSensitive Then
        txt = UCase(txt)
        mask = UCase(mask)
    End If
        
    If txt Like mask Then
            MaskCompare = True
        Else
            MaskCompare = False
    End If
End Function

Закройте редактор Visual Basic и вернитесь в Excel.

Теперь через Вставка — Функция (Insert — Function) в категории Определенные пользователем (User Defined) можно найти нашу функцию MaskCompare и воспользоваться ей. Синтаксис функции следующий:

=MaskCompare(txt; mask; CaseSensitive)

где

txt — любой текст или ячейка с текстом, которую мы проверяем на соответствие маске

mask — набор символов, которые ищутся в проверяемом тексте. Набор может содержать спецсимволы подстановки:

  • * — любое количество любых символов
  • ? — один любой символ
  • # — любая цифра (0 — 9)
  • [список_символов] — любой символ из списка
  • [!список_символов] — все символы, кроме содержащихся в списке

Case_Sensitive — необходимо ли учитывать регистр при проверке:

  • 1 — регистр символов учитывается
  • 0 — регистр символов не учитывается

Примеры использования функции

Использование спецсимволов в маске открывает перед пользователем широчайшие возможности. Вот несколько примеров масок:

  • ### — все числа от 0 до 999
  • ????? — все слова из 5 букв
  • м*н — все слова, начинающиеся на «м» и заканчивающиеся на «н»
  • *[аостр]* — все слова, содержащие хотя бы одну из букв а,о,с,т,р
  • *[!abcdefghijklmnopqrstuvwxyz]* — все слова НЕ содержащие английских букв

Ссылки по теме

  • Поиск ближайшего похожего слова
  • Что такое макросы, куда вставлять код макроса на VBA, как их использовать

Создание маски ввода в 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.
док-маска ячейка 1

  • Скрыть и замаскировать содержимое ячейки звездочкой с помощью форматирования ячеек
  • Скрыть и замаскировать содержимое ячейки звездочкой с кодом VBA
  • Шифровать и маскировать содержимое ячейки звездочкой или другой строкой
  • Другие относительные статьи (операции) о листе

Скрыть и замаскировать содержимое ячейки звездочкой с помощью форматирования ячеек

В Excel, чтобы замаскировать содержимое ячеек звездочкой, вы можете использовать функцию «Форматировать ячейки».

1. Выберите ячейки, которые вы хотите скрыть, с помощью звездочки, затем щелкните правой кнопкой мыши, чтобы выбрать Формат ячеек из контекстного меню.
док-маска ячейка 2

2. в Формат ячеек диалога под Число вкладка, выберите На заказ от Категория список, а затем введите ;;; ** в текстовое поле под Тип.
док-маска ячейка 4

3. Нажмите OK, теперь содержимое выделенной ячейки замаскировано звездочками.
док-маска ячейка 3

Но содержимое ячейки также можно просмотреть в строке формул.
док-маска ячейка 5

4. Поместите курсор в ячейку, содержимое которой вы не хотите скрывать, затем щелкните Обзор > Защитить лист, и снимите флажок Выберите разблокировать ячейки и Форматирование ячеек вариант (другие параметры вы можете проверить по мере необходимости), затем введите и подтвердите пароль для защиты листа в диалоговых окнах.
док-маска ячейка 6

Затем содержимое ячейки было скрыто и замаскировано звездочками.

Внимание: Если содержимое ячейки является числовой строкой, таким образом только содержимое ячейки отображается как пустое.
док-маска ячейка 7


Скрыть строки с # N / A или другими конкретными значениями ошибок с помощью кода VBA

Если вы хотите замаскировать и числа, и текст, вы можете применить код VBA.

1. Выберите ячейки, которые вы хотите зашифровать, и нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули, затем скопируйте и вставьте приведенный ниже код в новый модуль.

VBA: Скрыть строки ошибок # Н / Д

Sub E_Cells()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xERg As Range
Dim xWs As Worksheet
Dim xStrRg As String
Dim xStrPw As String
xStrPw = ""
xStrPw = Application.InputBox("Enter Password", "", "", Type:=2)
If xStrPw = "" Then Exit Sub
On Error Resume Next
Set xERg = Selection
Set xWs = Application.ActiveSheet
Set xRg = xWs.Cells
xRg.Locked = False
xERg.Locked = True
xERg.NumberFormatLocal = "**;**;**;**"
xWs.Protect Password:=xStrPw, DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub 

3. Нажмите F5 ключ для запуска кода. Затем введите пароль в появившемся диалоговом окне и нажмите кнопку OK кнопка. Смотрите скриншот:
док-маска ячейка 8

Наконечник:

1. Для расшифровки ячеек вы можете использовать приведенный ниже код макроса.

Sub D_Cells()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xERg As Range
Dim xWs As Worksheet
Dim xStrRg As String
Dim xStrPw As String
xStrPw = ""
xStrPw = Application.InputBox("Type Password", "", "", Type:=2)
If xStrPw = "" Then Exit Sub
On Error Resume Next
Set xWs = Application.ActiveSheet
Set xRg = xWs.UsedRange
xERg.NumberFormatLocal = "**;**;**;**"
xWs.Unprotect Password:=xStrPw
For Each xERg In xRg
    If xERg.Locked Then xERg.NumberFormatLocal = "@"
Next
End Sub

2. С кодом VBA содержимое ячейки также можно просмотреть в строке формул.


Шифровать и маскировать содержимое ячейки звездочкой или другой строкой

Если вы хотите зашифровать и замаскировать содержимое ячейки специальной строкой, как вам нужно, Зашифровать ячейкуособенность Kutools for Excel может сделать милую услугу.

Инструмент «Зашифровать ячейки» в Kutools for Excel Можно:

1. Зашифруйте ячейки пустым
2. Зашифруйте ячейки с помощью символов.
3. Зашифруйте ячейки указанной строкой.

Kutools for Excel содержит 300 продвинутых инструментов для решения ваших 90% головоломок Excel и предоставляет вам 30-дневная бесплатная пробная версия.

После бесплатная установка Kutools for Excel (60-дневная бесплатная пробная версия), выполните следующие действия.

1. Выберите ячейки, которые вы хотите замаскировать, затем щелкните Кутулс Плюс > Зашифровать ячейки.
док-маска ячейка 9

2. Затем во всплывающем диалоговом окне введите и подтвердите пароль, затем в Маска раздел, отметьте нужный вариант.
док-маска ячейка 10

3. Затем нажмите Ok. В настоящее время все выбранные ячейки замаскированы.

Проверьте Ничто, в ячейках отображается бред.
док-маска ячейка 11
док-маска ячейка 12

Проверьте Голец вариант, вы можете ввести любой символ в текстовое поле, тогда в ячейках будет отображаться только символ.
док-маска ячейка 13
док-маска ячейка 14

Проверьте строка вариант, затем введите строку, которую вы хотите отобразить в ячейках.
док-маска ячейка 15
док-маска ячейка 16

Функции: если вы хотите расшифровать ячейки или отобразить содержимое ячейки, вы можете нажать Кутулс Плюс > Расшифровать ячейки, затем введите пароль для успешного дешифрования.
док-маска ячейка 17


Другие операции (статьи), связанные с сокрытием

Скрыть строки по значению
В этом руководстве представлены некоторые методы скрытия строк на основе значения (равно / больше / меньше) в другом столбце Excel.

Скрыть часть текстовой строки
Иногда вы хотите скрыть часть строки, чтобы защитить личную информацию, например номер телефона 123-xxx-xxxx, как вы можете это сделать? В этой статье вы найдете простые решения.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Темы статей

Выбрать темы

Налог на прибыль

НДС

РРО

ЕСВ

ФЛП

Увольнение

Штрафы

НДФЛ

Отпуск

Единый налог

Больничные

Все темы

Редакция БК

logo journal

Бухгалтер&Компьютер
Май, 2012/№ 9

Статья

Excel: проверяем текст по маске

img 1

В почту нашей редакции периодически поступают вопросы по работе с текстом в программе Excel. Чтобы не перефразировать проблему своими словами, просто приведу цитату из одного такого письма: «Уважаемые сотрудники «Б & K»! В большинстве офисных приложений есть удобная функция для проверки текста на соответствие шаблону. При работе с документом в программе Word такая функция позволяет найти слова, которые содержат определенную комбинацию символов. В программе Excel при обработке баз данных инструментом «Автофильтр» использование шаблонов позволяет отобрать записи по признаку «Содержит». Но все эти функции вызываются через меню. А хотелось бы иметь возможность анализировать текст по шаблону при помощи формул. К сожалению, среди встроенных функций работы с текстом в MS Excel я подходящего варианта не нашел. Подскажите, как можно решить эту проблему?». Что ж, как говорится, задача поставлена, остается самая малость — найти ее решение. Чем мы сейчас и займемся.

Николай КАРПЕНКО, канд. техн. наук, доцент кафедры прикладной математики и информационных технологий Харьковской национальной академии городского хозяйства

Работа с шаблонами (или так называемыми масками) — одна из самых полезных функций, когда речь идет о работе с большими базами данных, а критерий поиска информации точно не известен. На практике такая ситуация встречается сплошь и рядом. Элементарный пример. У меня есть реестр выданных (или полученных) налоговых накладных. Реестр большой, несколько тысяч записей. И задача состоит в том, чтобы найти в этом реестре все документы по определенной фирме. Точное название фирмы (как она фигурирует в реестре) я не помню: может это «ООО «Фора»» или «ТОВ «Фора»», как-то так. Но тот факт, что в названии есть слово «Фора», я знаю наверняка. А это означает, что для поиска информации о фирме «Фора» мне нужно использовать не точное название предприятия, а некоторый шаблон. В данном случае он может выглядеть так: «*Фора*». В этом шаблоне на месте символа «*» может стоять любая строка произвольной длины. А сам шаблон описывает названия фирм, где вначале идет любой текст, затем есть слово «Фора», а за ним — снова произвольный текст. Под такой шаблон попадают, например, такие названия: «ТОВ «Фора»», «ООО «Фора»», «Фирма «Фора»», «»Фора», ltd» и т. д. Иными словами, шаблон «*Фора*» задает не точное, а приблизительное название предприятия для поиска его в реестре. А это именно то, что нам нужно. Остается реализовать такой поиск на практике.

Здесь ситуация такова. В программе Excel (а речь идет именно о ней!) есть разные способы решения этой задачи. Например, поиск и выбор данных можно организовать при помощи автофильтра. В этом случае шаблон для поиска нужно ввести в настройках фильтра, и такая возможность в программе Excel предусмотрена. Другое дело, когда нужно не просто выбрать данные, а еще и обработать их. Для примера, обратимся к базе данных, фрагмент которой показан на рис. 1. Предположим, мы хотим написать формулу, которая просуммирует все значения из колонки «Сумма с НДС» для контрагента «ТОВ «Фора»». Нам известно, что название этого контрагента в базе может отличаться (например, в названии может быть лишний пробел). Но слово «Фора» в нем есть всегда, и оно является ключевым для организации поиска.

img 2

В принципе справиться с задачей мы могли бы при помощи сводных таблиц. Но проблема заключается в том, что в них нельзя использовать шаблоны для анализа текстовых строк. Второй вариант — воспользоваться формулами. Но и здесь проблема остается, так как из 24 встроенных текстовых функций MS Excel ни одна не работает с шаблонами. Причем эта ситуация характерна для всех версий программы — начиная от Excel 95 и вплоть до последней редакции Excel 2010.

Поэтому для решения задачи нам понадобится функция, которая умеет сравнивать текстовые строки по заданному шаблону. И тогда, при наличии такой функции, применить любой инструмент обработки данных уже не составит труда.

Создать функцию для сравнения строк совсем несложно, если воспользоваться возможностями языка Visual Basic for Application (VBA) программы MS Excel. Все, что нам придется сделать, — это открыть редактор Visual Basic и написать в нем буквально десяток строк. А в результате мы сможем существенно расширить свои возможности по обработке данных и заодно закрыть довольно-таки большой пробел в работе с текстом, который есть в стандартных средствах MS Excel.

Создаем функцию проверки текста по шаблону

Итак, мы решили, что для создания функции сравнения строк нам нужно написать небольшую программу на языке Visual Basic, который входит в состав MS Excel. Разумеется, программирование на VBA не является профильной задачей бухгалтера. Поэтому мы не будем углубляться в тонкости работы программы. Нам достаточно в общих чертах знать, как она выглядит и как вставить ее в документ MS Excel. Кроме того, полный текст функции мы выложим на сайте редакции, где вы сможете скачать его без каких-либо ограничений. Приступим.

Если вы работаете с Excel 2010, то первое, что нужно сделать для работы с VBA, — это включить вкладку «Разработчик» (по умолчанию эта возможность отключена). Для этого делаем так.

1. Открываем программу Excel. Загружаем файл с базой данных, как на рис. 1. В нашем примере она называется «РеестрНН.xls».

2. Вызываем меню «Файл → Параметры» и выбираем раздел «Настройка ленты». Откроется окно, изображенное на рис. 2.

img 3

3. В группе параметров «Настройка ленты:» включаем флажок слева от строки «Разработчик» (рис. 2).

4. В окне настроек нажимаем «ОК». В составе основного меню Excel 2010 появится пункт «Разработчик» (рис. 3).

img 4

5. Щелкаем левой кнопкой на разделе «Разработчик» главного меню. Лента примет вид, как на рис. 3.

6. В группе «Код» щелкаем на иконке «Visual Basic» (рис. 3). Откроется окно, изображенное на рис. 4. Это и есть редактор Visual Basic.

img 5

В левой части окна показана структура проекта для текущей рабочей книги. В этот проект нам и нужно добавить текст своей функции.

Важно! В Excel 2003 для вызова Visual Basic войдите в меню «Сервис → Макрос → Редактор Visual Basic». На экране появится окно, изображенное на рис. 4.

Теперь наша задача — вставить в документ «РеестрНН.xls» текст функции для сравнения строк. Делаем так.

1. Заходим на сайт по адресу http://www.bk.factor.ua/ru/publications/14/8/1106.html , скачиваем файл с текстом программы.

2. Сохраняем результат на жесткий диск.

3. Открываем скачанный файл в любом текстовом редакторе. Можно воспользоваться программой «Блокнот» или процессором MS Word. Перед вами должен появиться такой текст:

′ Функция для сравнения текстовых строк по маске

Function MskCmp(Tekct As String, Maska As String, Reg As Boolean)

If Not Reg Then

Tekct = UCase(Tekct)

Maska = UCase(Maska)

End If

If Tekct Like Maska Then

MskCmp = True

Else

MskCmp = False

End If

End Function 

4. Нажимаем «Ctrl+A» (выделить все).

5. Комбинацией «Ctrl+C» копируем текст в буфер обмена.

6. Переходим в окно Visual Basic (рис. 4).

7. Вызываем меню «Insert → Module». Откроется окно для добавления текста программы.

8. Нажимаем «Ctrl+V» (вставляем текст из буфера обмена).

9. Нажимаем кнопку «Сохранить» и закрываем редактор Visual Basic. Функция добавлена.

Прежде чем идти дальше посмотрим, что мы получили на самом деле. В результате работы с Visual Basic у нас появится дополнительная функция с именем «MskCmp()». У нее три параметра: текст (или ячейка с текстом), который мы будем проверять на соответствие шаблону, второй параметр — это сам шаблон. И, наконец, последний, третий параметр — это признак контроля регистра символов «Reg». Если этот параметр равен «0», то регистр функция контролировать не будет. Если параметр равен «1», то поиск будет выполняться с учетом регистра. То есть синтаксис нашей функции выглядит так: «=MaskCompare(Tekct; Maska; Reg), где «Tekct» — анализируемый текст, «Maska» — шаблон, «Reg» — признак контроля регистра символов. Главным и единственным критерием для поиска данных у функции «MskCmp()» является шаблон «Maska». Он может состоять из любых символов и специальных знаков (или так называемых символов подстановки). К таким символам относятся:

«*» — означает, что на месте этого знака может находиться произвольное количество любых символов;

«?» — на месте этого знака может стоять один символ;

«#» — на месте этого символа может находиться любая цифра (от «0» до «9»);

«[Список_символов]» — такая запись в шаблоне заменяет любой символ из указанного списка;

«[!Список_символов]» — означает, что в строке могут находиться любые символы, кроме перечисленных в списке.

Вот примеры нескольких шаблонов, которые можно использовать в функции «MskCmp()»:

«###» — числа от 0 до 999;

«?????» — слова из 5 букв;

«м*н» — слова, которые начинаются на «м» и заканчиваются на «н»;

«*[аостр]*» — все слова, содержащие хотя бы одну из букв «а», «о», «с», «т», «р»;

«*[abcdefghijklmnopqrstuvwxyz]*» — все слова, в которых есть английские буквы.

Применяем функцию MskCmp() для обработки базы данных

Функция для проверки текста у нас есть. Можно использовать ее для решения нашей задачи. Напомню, что мы хотим в базе данных на рис. 1 посчитать итоговые значения для контрагентов, в названии которых есть слово «Фора». Делаем так.

1. Открываем документ с базой «РеестрНН.xls» (рис. 1).

2. Перед началом базы данных добавляем рабочую строку. Она будет первой на рабочем листе.

3. Заполняем ячейки рабочей строки, а именно: в «B1» вводим текст «Фирма:». В ячейку «C1» вводим название контрагента, для которого нужно посчитать итоговые значения в базе данных. В нашем примере — это фирма «Фора».

4. Становимся на ячейку «J2», вводим название заголовка «Пр». В этой колонке мы напишем признак суммирования.

5. Становимся на ячейку «J4», щелкаем на значке «fx». Откроется окно «Мастер функций», изображенное на рис. 5.

img 6

6. В этом окне щелкаем на списке «Категория:», выбираем значение «Определенные пользователем». В списке «Выберите функцию:» появится список доступных функций пользователя для текущего документа.

7. В этом списке выбираем вариант «MskCmp» и нажимаем «ОК». Откроется окно «Аргументы функции», изображенное на рис. 6.

img 7

8. В нем заполняем параметры, как показано на рисунке. Здесь адрес «E4» — это ссылка на ячейку с наименованием предприятия. Формула «»*»&$C$1&»*»» формирует маску для поиска, используя название контрагента из ячейки «C1». Сейчас в «C1» записано значение «Фора». Поэтому формула «»*»&$C$1&»*»» сформирует маску «*Фора*», которая выберет все предприятия, в названии которых встречается текст «Фора». Регистр при поиске мы не проверяем, поэтому параметр «Reg» вводим равным «0».

9. В окне «Аргументы функции» нажимаем «ОК». В ячейке «J4» появится формула «=MskCmp(E4;»*»&$C$1&»*»;0)», а ее значение в ячейке «J4» будет «Истина». Все верно: в «E4» записано название «ТОВ «Фора»» и функция «MskCmp()» это правильно определила.

10. Копируем формулу вниз по колонке «J» на всю высоту базы данных.

Все, что нам остается, — добавить формулы суммирования с учетом значений в колонке «J». Сделать это можно при помощи функции «Сумм если()». Делаем так.

1. Становимся на ячейку «G1».

2. Вводим формулу выборочного суммирования: «=Суммесли($J4:$J10000;ИСТИНА;G4:G10000)». Эта формула просматривает значения блока «$J4:$J1000» (считаем, что в базе будет не более 1000 записей). Если в какой-то ячейке блока она находит значение «Истина», формула берет содержимое из соответствующей ячейки блока «G4:G10000» и добавляет его к общей сумме. В результате эта формула посчитает сумму значений из колонки «G», которые отмечены в столбце «J» как «Истина». Для примера на рис. 7 мы таким образом получим итоги по контрагенту «Фора».

3. Копируем содержимое «G1» в буфер обмена и вставляем содержимое из буфера в ячейки «H1» и «I1». Результат нашей работы показан на рис. 7.

img 8

Что мы получили на самом деле? В ячейке «C1» нашей таблицы записано приблизительное название контрагента. Мы использовали это название для формирования маски. В колонке «Пр» записана функция «MskCmp()», которая сверяет названия предприятий из колонки «E» с маской для поиска. Если текст из «C1» содержится в названии предприятия, в соответствующей ячейке колонки «Пр» появится значение «ИСТИНА». В противном случае там будет «ЛОЖЬ». Теперь, имея такой признак, получить итоги уже не составит труда.

Функцию «MskCmp()» можно с успехом использовать для анализа и проверки правильности данных. Такая задача очень актуальна при работе с большими таблицами, к которым планируется применить инструменты обработки данных и подведения итогов. Вот всего пара ситуаций, которые часто встречаются в практической работе.

Пример 1. В реестре, изображенном на рис. 7, нужно проверить правильность наименований в колонке «E». Мы хотим убедиться, что все названия предприятий набраны русскими буквами. Дело в том, что визуально текст «ТОВ «Фора»» и «ТОВ «Фopа»» выглядит одинаково. Но во втором случае буквы «o» и «p» введены в латинице. И, разумеется, при подведении итогов, при сортировке или другой обработке данных эти отличия компьютер «увидит». И при обработке базы будет получен неверный результат. Решить проблему можно так.

1. Находим свободный столбец. Пусть это будет колонка «К». Озаглавим ее как «Контроль».

2. В ячейку «K2» вводим формулу «=MaskCompare(E4;»*[A-z]*»;0)» и копируем ее на всю высоту таблицы. Теперь все как на ладони. Все строки, помеченные в колонке «K» значением «Истина», содержат в названии предприятия латинские символы.

Пример 2. В базе данных на рис. 2 нужно проверить, чтобы все коды ИНН содержали только числа. Сделать такую проверку для содержимого ячейки «F4» поможет формула «=MaskCompare(F4;»*[0123456789]»;0)». Далее копируем ее на всю высоту таблицы — и задача решена. Все строки, которые будут отмечены значением «ЛОЖЬ», содержат ошибку в коде ИНН.

Пример 3. Лишние пробелы в названиях и других ключевых полях базы данных всегда являются источником ошибок. Чтобы проверить наличие двух пробелов в колонке «Наименование» реестра налоговых накладных, можно воспользоваться формулой «=MaskCompare(E4;»* *»;0)». В этой формуле маска «»* *»» — это символ «*», затем идут два пробела, а после них опять символ «*». Заполняем этой формулой рабочую колонку и смотрим на результат. Строки, где в рабочей колонке появятся значения «Истина», содержат в названии предприятия лишний пробел.

Как видите, использование масок и шаблонов со специальными символами открывает широчайшие возможности по обработке данных в программе Excel. Все зависит от фантазии и творческого подхода к решению проблемы.

А у меня на сегодня все. Успешной работы! Жду ваших писем, предложений и замечаний на bk@id.factor.ua, nictomkar@rambler.ru или на форуме редакции.

Содержание

  1. Как привести телефонные номера к единому формату?
  2. Как это сделать?
  3. Как это работает?
  4. Проверка текста по маске
  5. Примеры использования функции
  6. Excel маска ввода
  7. Управление форматами ввода данных с помощью масок ввода
  8. В этой статье
  9. Общие сведения о масках ввода
  10. Три компонента маски ввода
  11. Знаки, определяющие маски ввода
  12. Определение маски ввода
  13. Как использовать маску ввода в excel vba?
  14. Использование входной маски
  15. Сводные таблицы Excel
  16. Как использовать маску ввода в Excel VBA?
  17. Использование маски ввода

Как привести телефонные номера к единому формату?

Как это сделать?

В качестве примера, возьмем номер телефона в виде «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

Этот пост может помочь вам.

Использование входной маски

. Вы можете задаться вопросом, есть ли способ настроить маску ввода, которая автоматически добавит двоеточие. Хорошая новость — да, есть. Плохих новостей нет, нет. Звук запутанный? Позволь мне объяснить.

Вы можете настроить пользовательский формат, который отобразит ваше время в любом формате. Например, вы можете использовать следующие шаги:

  1. Выберите ячейки, которые вы хотите использовать для ввода времени.
  2. Выберите » Формат» в меню «Ячейки». Excel отображает диалоговое окно » Формат ячеек «.
  3. Убедитесь, что отображается вкладка » Число «.
  4. В списке «Категория» выберите » Пользовательский».
  5. Замените все, что находится в поле » Тип», с #»:»00 .
  6. Нажмите 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, написанной Алленом Уайеттом .

Использование маски ввода

. Вы можете задаться вопросом, есть ли способ установить маску ввода, которая автоматически добавит двоеточие. Хорошие новости — да, есть. Плохих новостей нет, нет. Звук сбивает с толку? Позволь мне объяснить.

Вы можете настроить пользовательский формат, который будет отображать ваше время в любом формате, который вы хотите. Например, вы можете использовать следующие шаги:

  1. Выберите ячейки, которые вы хотите использовать для ввода времени.
  2. Выберите « Формат» в меню «Ячейки». В Excel отобразится диалоговое окно « Формат ячеек ».
  3. Убедитесь, что отображается вкладка Number .
  4. В списке Категория выберите Пользовательский .
  5. Замените все, что находится в поле « Тип #»:»00 .
  6. Нажмите на ОК .

Теперь вы можете ввести свое время, используя только цифры. Проблема (и это плохие новости) состоит в том, что ячейка не содержит времени. Если вы введете 230 (для 2:30), оно не будет содержать 2:30 как время — оно содержит двести тридцать. Таким образом, вы не можете использовать содержимое ячейки непосредственно в расчетах времени.

Чтобы преодолеть это, вы можете использовать другой столбец для отображения введенных цифр, преобразованных во время. Все, что вам нужно сделать, это использовать формулу, чтобы сделать преобразования. Например, если время, которое вы ввели, было в ячейке A3 , вы можете использовать следующую формулу в другой ячейке, чтобы выполнить преобразование:

Отформатируйте ячейку, содержащую приведенную выше формулу, чтобы она отображала один из различных форматов времени, и все готово.

(Полная статья и многое другое на источнике .)

Источник

Понравилась статья? Поделить с друзьями:
  • Текст читать в формате word
  • Текстовые макросы для excel
  • Текст через запятую разделить по столбцам в excel
  • Текстовые знаки в excel
  • Текст через запятую в столбец excel