Шаблон ввода ячейка excel


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

EXCEL

блокировать ввод данных не соответствующих этому шаблону.

Реализуем контроль ввода значений в MS EXCEL по шаблону с использованием инструмента

Проверка данных

с условием проверки

Другое

.

Предположим, что в таблицу необходимо вводить артикулы товаров и, известно, что правильный артикул имеет длину 6 символов, начинается с латинской буквы, далее идут 4 цифры, затем 1 русская буква.

Для этого:

  • выделите ячейки, в которые будет осуществляться ввод артикулов (

    А2:А20

    );
  • вызовите инструмент

    Проверка данных (

    )

    ;

  • установите условие проверки

    Другой

    ;
  • в поле

    Формула

    введите:

    =И(ДЛСТР(A2)=6; КОДСИМВ(ПРОПИСН(ЛЕВСИМВ(A2;1)))>64; КОДСИМВ(ПРОПИСН(ЛЕВСИМВ(A2;1)))<91; ЕЧИСЛО(—ПСТР(A2;2;4)); КОДСИМВ(ПРОПИСН(ПРАВСИМВ(A2;1)))>191; КОДСИМВ(ПРОПИСН(ПРАВСИМВ(A2;1)))<224)
  • нажмите ОК.

Формула должна вводиться в одну строку. Не обращайте внимание на сообщение «

При вычислении Формула возникает ошибка. Продолжить?

». Нажмите кнопку

Да

(см.

Файл примера

).

Для информирования пользователя в случае ввода неверных данных, во вкладке

Сообщение для ввода

в поле

Сообщение

можно ввести информацию о формате артикула.


СОВЕТ

: Чтобы найти все ячейки на листе, к которым применена

Проверка данных

необходимо:

  • на вкладке

    Главная

    в группе

    Редактирование

    щелкните стрелку рядом с командой

    Найти и выделить

    ;
  • выберите в списке пункт

    Проверка данных;
  • будут выделены все ячейки, которым применена

    Проверка данных

    .

 

oleg355

Пользователь

Сообщений: 116
Регистрация: 07.11.2016

#1

18.05.2018 15:51:16

Добрый день всем!

Как прописать разрешенный алгоритм ввода в ячейку вручную в диапазоне листа
Если алгоритм нарушается то MsgBox и обнуление значения ячейки
В ячейку должен вводится текст телефона по шаблону +7(###)###-##-##  (c +7 вначале — те один «+» и обязательно 7ка, 2мя скобками, 2тире, 10 цифр от 0 до 9 и только цифры)
Если нарушается ввод по шаблону, то MsgBox и активная ячейка обнуляется
Можно и по варианту 2 — ограничение до 16 симоволов (при этом один +, одна 7, 2 скобки, 2 тире, 10 цифр и только цифры присутствуют) потом перепроверить в конце ввода по сохранению значений в активной ячейке

Сам не знаю как этот шаблон написать …

Макрос по событию

Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Sh.Name = "Таблица" Then
If Target.Cells.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub

If Not Intersect(Target, Range("C4:C5003")) Is Nothing Then

'здесь шаблон ввода

Else
MsgBox "Вводите данные только в формате +7(###)###-##-## "
Target = ""
End If

End If
End Sub
 

webley

Пользователь

Сообщений: 1995
Регистрация: 01.01.1970

#2

18.05.2018 16:00:18

Так вы почти все написали:

Код
If Target like "+7(###)###-##-##" then
 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

#3

18.05.2018 16:00:25

Цитата
oleg355 написал:
…разрешенный алгоритм ввода в ячейку вручную…
В ячейку должен вводится текст телефона по шаблону +7(###)###-##-##

Стандартными средствами экселя этого не сделать, надо писать макрос, который будет подставлять в нужном порядке требуемые символы (если действительно нужен ввод, а не отображение). С отображение все проще(пример).

Прикрепленные файлы

  • отображение пример.xlsx (8.46 КБ)

Изменено: TheBestOfTheBest18.05.2018 16:02:45

Неизлечимых болезней нет, есть неизлечимые люди.

 

oleg355

Пользователь

Сообщений: 116
Регистрация: 07.11.2016

именно ввод нужен если возможно  — чтобы 10 раз не стиралось если ошибка и не перебивать значения по новой

Изменено: oleg35518.05.2018 16:04:22

 

Ігор Гончаренко

Пользователь

Сообщений: 13746
Регистрация: 01.01.1970

#5

18.05.2018 16:10:36

Код
Function CheckMask(s$)
  Dim re:  Set re = CreateObject("VBScript.RegExp")
  re.Pattern = "+7(d{3})d{3}-d{2}-d{2}":  CheckMask = re.test(s)
End Function

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

TheBestOfTheBest

Пользователь

Сообщений: 2366
Регистрация: 03.04.2015

Excel 2010 +PLEX +SaveToDB +PowerQuery

Код #5 сделает проверку на соответствие шаблону, но не автоматизирует Ваш ввод. Что Вам надо пока непонятно….

Неизлечимых болезней нет, есть неизлечимые люди.

 

oleg355

Пользователь

Сообщений: 116
Регистрация: 07.11.2016

#7

18.05.2018 16:24:57

Благодарю

Ігор Гончаренко

чего то запутался как функцию прописать  так?

Код
If ActiveCell.Value = CheckMask(ActiveCell.Value) Then

Else
 

oleg355

Пользователь

Сообщений: 116
Регистрация: 07.11.2016

Понятно что одна проверка ввода на соответствие шаблону  — это путь когда ошибся все стираешь и по новой набираешь
Автоматизатизация ввода — когда набрал все только цифры вида 79124543456 и при условии что ячейка в текстовом формате именно (а не в формате телефона) подставилось в это цифровое сочетание +, (),  — приводя к виду +7(912)454-34-56
Лучший более вариаент автоматизации -это когда по ходу набора цифр автоматом появляются символы  — набрал семь к ней + прибавился и скобка ( появилась, набрал следующие три цифры — они автоматом в скобкой ) закрылись и тд

Изменено: oleg35518.05.2018 16:45:27

 

If CheckMask(ActiveCell.Value) Then
 ‘  текст в активной ячейке соотв. маске
Else
‘ не соотв. маске

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

StoTisteg

Пользователь

Сообщений: 441
Регистрация: 07.05.2018

Я бы на SelectionChange повесил:
1) проверяем, что ячейка одна и нужная
2) задаём в ней +7(
На Change:
0) проверяем, что ячейка одна и нужная
1) +7( стирать не даём
2) проверяем, что введена цифра, если нет — удаляем
3) после 6 символа ставим ), после 10 и 13 — -, больше 15 символов вводить не даём.
То есть просто не даём пользователю вводить не то, а не требуем верного ввода.

Изменено: StoTisteg18.05.2018 16:52:25

 

webley

Пользователь

Сообщений: 1995
Регистрация: 01.01.1970

#11

18.05.2018 17:03:14

можно вот так реализовать ввод телефона в любом формате с последующим преобразованием:

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    
    Dim st As String
    st = Target
    st = Replace(st, "(", "")
    st = Replace(st, ")", "")
    st = Replace(st, "+", "")
    st = Replace(st, "-", "")
    st = Replace(st, " ", "")
    
    If st Like "7##########" Or st Like "8##########" Or st Like "##########" Then
        st = Right(st, 10)
        Target = "+7(" & Mid(st, 1, 3) & ")" & Mid(st, 4, 3) & "-" & Mid(st, 7, 2) & "-" & Mid(st, 9, 2)
    Else
        Target = ""
    End If
End Sub
 

oleg355

Пользователь

Сообщений: 116
Регистрация: 07.11.2016

#12

18.05.2018 17:58:39

webley

ваш вариант покруче будет — огромное спасибо за помощь !
Так сделал — в Эта книга

Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) ' рабочий супер от webley
Application.MoveAfterReturn = False 'защита от нажатия ENTER сброс флажка в в настройках Excel Файл-Параметры-Дополнительно - Переход к другой ячейке после нажатия Ввод

If Sh.Name = "Таблица" Then
If Target.Cells.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
On Error Resume Next
'If Not Intersect(Target, Range("C4:C5003")) Is Nothing Then
If Not Intersect(ActiveCell, Range("C4:C5003")) Is Nothing Then
Dim st As String
    st = Target
    st = Replace(st, "(", "")
    st = Replace(st, ")", "")
    st = Replace(st, "+", "")
    st = Replace(st, "-", "")
    st = Replace(st, " ", "")
     
    If st Like "7##########" Or st Like "8##########" Or st Like "##########" Then
        st = Right(st, 10)
        Target = "+7(" & Mid(st, 1, 3) & ")" & Mid(st, 4, 3) & "-" & Mid(st, 7, 2) & "-" & Mid(st, 9, 2)
    Else
        MsgBox "Введено недостаточно цифр ! Вводите 11 цифр которые должны начинаться на 7 или 8 (либо просто 10 цифр номера без начальной 7 или 8)"
        Target = ""
    End If
End If
On Error GoTo 0
End If
End Sub

Хотя самый лучший  вариант автоматизации -это когда по ходу набора цифр автоматом появляются символы — набрал семь к ней + прибавился и скобка ( появилась, набрал следующие три цифры — они автоматом в скобкой ) закрылись и тд и так пока цифры набираешь — автоматом символы добавляются  закончился требуемый
набор цифр — вылетает MsgBox «Набор телефона закончен!» Тогда исключается недобор и перебор количества набираемых цифр в ячейке ..

Изменено: oleg35518.05.2018 18:28:35

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#13

18.05.2018 18:21:32

Цитата
oleg355 написал:
самый лучший  вариант автоматизации -это когда

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

 

oleg355

Пользователь

Сообщений: 116
Регистрация: 07.11.2016

ради чего все делалось
есть диапазон на определенных листах книги куда нужно вносить телефонный номер с помощью формы
(однако при этом пользователь может внести вручную номер в ячейку  — его же не заставишь только формой вводить )
тк телефонный номер клиента — это важно   нужно было ввод формой и ручным вводом защитить от ошибок
те ввести правило — условие записи номера только 10 цифр после 7 или 8  формой либо ручным вводом в активную ячейку для пользователя и обложить его MsgBox
от неправильного ввода
Код 4 этажный — но может кому поможет при данной задаче
задавал вопросы — большая благодарность Run,webley

Прикрепленные файлы

  • Книга4.xlsm (36.23 КБ)

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

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

#15

18.05.2018 21:13:17

Цитата
oleg355 написал:
пользователь может внести вручную номер в ячейку  — его же не заставишь только формой вводить

Защитить ячейку, макросу разрешить ввод.

 

oleg355

Пользователь

Сообщений: 116
Регистрация: 07.11.2016

#16

18.05.2018 21:27:00

постоянно в разных макросах в разных диапазонах снимать защиту — одевать защиту + параметр UserInterfaceOnly  — я такто чайник но для меня проще практически идентичный макрос на форму и диапазон прописать и в тексте VBA разложить макросы комментариями    в этих защитах снятиях можно запутаться если макросов много  где надо снимать — одевать и при каких условиях   (если делать защиту то глобально  на все если в пользователях не уверен) еще извините может неправ

Изменено: oleg35518.05.2018 21:36:28

Содержание

  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 , вы можете использовать следующую формулу в другой ячейке, чтобы выполнить преобразование:

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

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

Источник

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

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

Содержание

  • Применение инструментов заполнения
    • Способ 1: встроенный объект для ввода данных Excel
    • Способ 2: создание пользовательской формы
  • Вопросы и ответы

Форма в Microsoft Excel

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

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

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

Теперь давайте рассмотрим, как пользоваться этими двумя видами инструментов.

Способ 1: встроенный объект для ввода данных Excel

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

  1. Нужно отметить, что по умолчанию значок, который её запускает, скрыт и его нужно активировать. Для этого переходим во вкладку «Файл», а затем щелкаем по пункту «Параметры».
  2. Переход в параметры в Microsoft Excel

  3. В открывшемся окне параметров Эксель перемещаемся в раздел «Панель быстрого доступа». Большую часть окна занимает обширная область настроек. В левой её части находятся инструменты, которые могут быть добавлены на панель быстрого доступа, а в правой – уже присутствующие.

    В поле «Выбрать команды из» устанавливаем значение «Команды не на ленте». Далее из списка команд, расположенного в алфавитном порядке, находим и выделяем позицию «Форма…». Затем жмем на кнопку «Добавить».

  4. Добавление инструмента форма на панель быстрого доступа в Microsoft Excel

  5. После этого нужный нам инструмент отобразится в правой части окна. Жмем на кнопку «OK».
  6. Инструмент форма добавлен на панель быстрого доступа в Microsoft Excel

  7. Теперь данный инструмент располагается в окне Excel на панели быстрого доступа, и мы им можем воспользоваться. Он будет присутствовать при открытии любой книги данным экземпляром Excel.
  8. Инструмент форма отображается на панеле быстрого доступа в Microsoft Excel

  9. Теперь, чтобы инструмент понял, что именно ему нужно заполнять, следует оформить шапку таблицы и записать любое значение в ней. Пусть табличный массив у нас будет состоять из четырех столбцов, которые имеют названия «Наименование товара», «Количество», «Цена» и «Сумма». Вводим данные названия в произвольный горизонтальный диапазон листа.
  10. Шапка таблицы в Microsoft Excel

  11. Также, чтобы программа поняла, с каким именно диапазонам ей нужно будет работать, следует ввести любое значение в первую строку табличного массива.
  12. первое значение в таблице в Microsoft Excel

  13. После этого выделяем любую ячейку заготовки таблицы и щелкаем на панели быстрого доступа по значку «Форма…», который мы ранее активировали.
  14. Запуск формы в Microsoft Excel

  15. Итак, открывается окно указанного инструмента. Как видим, данный объект имеет поля, которые соответствуют названиям столбцов нашего табличного массива. При этом первое поле уже заполнено значением, так как мы его ввели вручную на листе.
  16. Форма открыта в Microsoft Excel

  17. Вводим значения, которые считаем нужными и в остальные поля, после чего жмем на кнопку «Добавить».
  18. Ввод значений в форму в Microsoft Excel

  19. После этого, как видим, в первую строку таблицы были автоматически перенесены введенные значения, а в форме произошел переход к следующему блоку полей, который соответствуют второй строке табличного массива.
  20. Значения перенесы в таблицу в Microsoft Excel

    Lumpics.ru

  21. Заполняем окно инструмента теми значениями, которые хотим видеть во второй строке табличной области, и снова щелкаем по кнопке «Добавить».
  22. Добавление второй строки в таблицу через форму в Microsoft Excel

  23. Как видим, значения второй строчки тоже были добавлены, причем нам даже не пришлось переставлять курсор в самой таблице.
  24. Вторая строка заполнена в таблице в Microsoft Excel

  25. Таким образом, заполняем табличный массив всеми значениями, которые хотим в неё ввести.
  26. Все значения в таблицу введены в Microsoft Excel

  27. Кроме того, при желании, можно производить навигацию по ранее введенным значениям с помощью кнопок «Назад» и «Далее» или вертикальной полосы прокрутки.
  28. Навигация по форме в Microsoft Excel

  29. При необходимости можно откорректировать любое значение в табличном массиве, изменив его в форме. Чтобы изменения отобразились на листе, после внесения их в соответствующий блок инструмента, жмем на кнопку «Добавить».
  30. Корректировка данных в форме в Microsoft Excel

  31. Как видим, изменение сразу произошло и в табличной области.
  32. Изменение произведено в таблице в Microsoft Excel

  33. Если нам нужно удалить, какую-то строчку, то через кнопки навигации или полосу прокрутки переходим к соответствующему ей блоку полей в форме. После этого щелкаем по кнопке «Удалить» в окошке инструмента.
  34. Удаление строки через форму в Microsoft Excel

  35. Открывается диалоговое окно предупреждения, в котором сообщается, что строка будет удалена. Если вы уверены в своих действиях, то жмите на кнопку «OK».
  36. Подтверждение удаления строки в Microsoft Excel

  37. Как видим, строчка была извлечена из табличного диапазона. После того, как заполнение и редактирование закончено, можно выходить из окна инструмента, нажав на кнопку «Закрыть».
  38. Закрытие формы в Microsoft Excel

  39. После этого для предания табличному массиву более наглядного визуального вида можно произвести форматирование.

Таблица отформатированв в Microsoft Excel

Способ 2: создание пользовательской формы

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

  1. Как и в предыдущем способе, прежде всего, нужно составить шапку будущей таблицы на листе. Она будет состоять из пяти ячеек с именами: «№ п/п», «Наименование товара», «Количество», «Цена», «Сумма».
  2. Шапка таблицы создана в Microsoft Excel

  3. Далее нужно из нашего табличного массива сделать так называемую «умную» таблицу, с возможностью автоматического добавления строчек при заполнении соседних диапазонов или ячеек данными. Для этого выделяем шапку и, находясь во вкладке «Главная», жмем на кнопку «Форматировать как таблицу» в блоке инструментов «Стили». После этого открывается список доступных вариантов стилей. На функционал выбор одного из них никак не повлияет, поэтому выбираем просто тот вариант, который считаем более подходящим.
  4. Создание умной таблицы в Microsoft Excel

  5. Затем открывается небольшое окошко форматирования таблицы. В нем указан диапазон, который мы ранее выделили, то есть, диапазон шапки. Как правило, в данном поле заполнено все верно. Но нам следует установить галочку около параметра «Таблица с заголовками». После этого жмем на кнопку «OK».
  6. Окошко форматирования таблицы в Microsoft Excel

  7. Итак, наш диапазон отформатирован, как «умная» таблица, свидетельством чему является даже изменение визуального отображения. Как видим, помимо прочего, около каждого названия заголовка столбцов появились значки фильтрации. Их следует отключить. Для этого выделяем любую ячейку «умной» таблицы и переходим во вкладку «Данные». Там на ленте в блоке инструментов «Сортировка и фильтр» щелкаем по значку «Фильтр».
    Отключение фильтра через вкладку Данные в Microsoft Excel

    Существует ещё один вариант отключения фильтра. При этом не нужно даже будет переходить на другую вкладку, оставаясь во вкладке «Главная». После выделения ячейки табличной области на ленте в блоке настроек «Редактирование» щелкаем по значку «Сортировка и фильтр». В появившемся списке выбираем позицию «Фильтр».

  8. Отключение фильтра через вкладку Главная в Microsoft Excel

  9. Как видим, после этого действия значки фильтрации исчезли из шапки таблицы, как это и требовалось.
  10. Фильтр снят в Microsoft Excel

  11. Затем нам следует создать саму форму ввода данных. Она тоже будет представлять собой своего рода табличный массив, состоящий из двух столбцов. Наименования строк данного объекта будут соответствовать именам столбцов основной таблицы. Исключение составляют столбцы «№ п/п» и «Сумма». Они будут отсутствовать. Нумерация первого из них будет происходить при помощи макроса, а расчет значений во втором будет производиться путем применения формулы умножения количества на цену.

    Второй столбец объекта ввода данных оставим пока что пустым. Непосредственно в него позже будут вводиться значения для заполнения строк основного табличного диапазона.

  12. Форма ввода данных на листе в Microsoft Excel

  13. После этого создаем ещё одну небольшую таблицу. Она будет состоять из одного столбца и в ней разместится список товаров, которые мы будем выводить во вторую колонку основной таблицы. Для наглядности ячейку с заголовком данного перечня («Список товаров») можно залить цветом.
  14. Таблица со списком товаров в Microsoft Excel

  15. Затем выделяем первую пустую ячейку объекта ввода значений. Переходим во вкладку «Данные». Щелкаем по значку «Проверка данных», который размещен на ленте в блоке инструментов «Работа с данными».
  16. Переход к проверке данных в Microsoft Excel

  17. Запускается окно проверки вводимых данных. Кликаем по полю «Тип данных», в котором по умолчанию установлен параметр «Любое значение».
  18. Окно проверки вводимых значений в Microsoft Excel

  19. Из раскрывшихся вариантов выбираем позицию «Список».
  20. Выбор списка в окне проверки вводимых значений в Microsoft Excel

  21. Как видим, после этого окно проверки вводимых значений несколько изменило свою конфигурацию. Появилось дополнительное поле «Источник». Щелкаем по пиктограмме справа от него левой клавишей мыши.
  22. Переход к выбору источника в окне проверки вводимых значений в Microsoft Excel

  23. Затем окно проверки вводимых значений сворачивается. Выделяем курсором с зажатой левой клавишей мыши перечень данных, которые размещены на листе в дополнительной табличной области «Список товаров». После этого опять жмем на пиктограмму справа от поля, в котором появился адрес выделенного диапазона.
  24. Адрес диапазона внесен в поле в Microsoft Excel

  25. Происходит возврат к окошку проверки вводимых значений. Как видим, координаты выделенного диапазона в нем уже отображены в поле «Источник». Кликаем по кнопке «OK» внизу окна.
  26. Закрытие окна проверки вводимых значений в Microsoft Excel

  27. Теперь справа от выделенной пустой ячейки объекта ввода данных появилась пиктограмма в виде треугольника. При клике на неё открывается выпадающий список, состоящий из названий, которые подтягиваются из табличного массива «Список товаров». Произвольные данные в указанную ячейку теперь внести невозможно, а только можно выбрать из представленного списка нужную позицию. Выбираем пункт в выпадающем списке.
  28. Список со значениями в Microsoft Excel

  29. Как видим, выбранная позиция тут же отобразилась в поле «Наименование товара».
  30. Выбранная позиция отобразилась в ячейке в Microsoft Excel

  31. Далее нам нужно будет присвоить имена тем трем ячейкам формы ввода, куда мы будем вводить данные. Выделяем первую ячейку, где уже установлено в нашем случае наименование «Картофель». Далее переходим в поле наименования диапазонов. Оно расположено в левой части окна Excel на том же уровне, что и строка формул. Вводим туда произвольное название. Это может быть любое наименование на латинице, в котором нет пробелов, но лучше все-таки использовать названия близкие к решаемым данным элементом задачам. Поэтому первую ячейку, в которой содержится название товара, назовем «Name». Пишем данное наименование в поле и жмем на клавишу Enter на клавиатуре.
  32. Наименование первой ячейки в Microsoft Excel

  33. Точно таким же образом присваиваем ячейке, в которую будем вводить количество товара, имя «Volum».
  34. Наименование второй ячейки в Microsoft Excel

  35. А ячейке с ценой – «Price».
  36. Наименование третьей ячейки в Microsoft Excel

  37. После этого точно таким же образом даем название всему диапазону из вышеуказанных трех ячеек. Прежде всего, выделим, а потом дадим ему наименование в специальном поле. Пусть это будет имя «Diapason».
  38. присвоение наименования диапазону в Microsoft Excel

  39. После последнего действия обязательно сохраняем документ, чтобы названия, которые мы присвоили, смог воспринимать макрос, созданный нами в дальнейшем. Для сохранения переходим во вкладку «Файл» и кликаем по пункту «Сохранить как…».
  40. Сохранение книги в Microsoft Excel

  41. В открывшемся окне сохранения в поле «Тип файлов» выбираем значение «Книга Excel с поддержкой макросов (.xlsm)». Далее жмем на кнопку «Сохранить».
  42. Окно сохранения файла в Microsoft Excel

  43. Затем вам следует активировать работу макросов в своей версии Excel и включить вкладку «Разработчик», если вы это до сих пор не сделали. Дело в том, что обе эти функции по умолчанию в программе отключены, и их активацию нужно выполнять принудительно в окне параметров Excel.
  44. После того, как вы сделали это, переходим во вкладку «Разработчик». Кликаем по большому значку «Visual Basic», который расположен на ленте в блоке инструментов «Код».
  45. Переход в редактор макросов в Microsoft Excel

  46. Последнее действие приводит к тому, что запускается редактор макросов VBA. В области «Project», которая расположена в верхней левой части окна, выделяем имя того листа, где располагаются наши таблицы. В данном случае это «Лист 1».
  47. Редактор макросов в Microsoft Excel

  48. После этого переходим к левой нижней области окна под названием «Properties». Тут расположены настройки выделенного листа. В поле «(Name)» следует заменить кириллическое наименование («Лист1») на название, написанное на латинице. Название можно дать любое, которое вам будет удобнее, главное, чтобы в нем были исключительно символы латиницы или цифры и отсутствовали другие знаки или пробелы. Именно с этим именем будет работать макрос. Пусть в нашем случае данным названием будет «Producty», хотя вы можете выбрать и любое другое, соответствующее условиям, которые были описаны выше.

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

    Как видим, после этого автоматически изменится и наименование Листа 1 в области «Project», на то, которое мы только что задали в настройках.

  49. Изменение наименования листа в редакторе макросов в Microsoft Excel

  50. Затем переходим в центральную область окна. Именно тут нам нужно будет записать сам код макроса. Если поле редактора кода белого цвета в указанной области не отображается, как в нашем случае, то жмем на функциональную клавишу F7 и оно появится.
  51. Поле в редкторе макросов отобразилось в Microsoft Excel

  52. Теперь для конкретно нашего примера нужно записать в поле следующий код:


    Sub DataEntryForm()
    Dim nextRow As Long
    nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
    With Producty
    If .Range("A2").Value = "" And .Range("B2").Value = "" Then
    nextRow = nextRow - 1
    End If
    Producty.Range("Name").Copy
    .Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
    .Cells(nextRow, 3).Value = Producty.Range("Volum").Value
    .Cells(nextRow, 4).Value = Producty.Range("Price").Value
    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
    .Range("A2").Formula = "=IF(ISBLANK(B2), """", COUNTA($B$2:B2))"
    If nextRow > 2 Then
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & nextRow)
    Range("A2:A" & nextRow).Select
    End If
    .Range("Diapason").ClearContents
    End With
    End Sub

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

    Итак, первая строка:

    Sub DataEntryForm()

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

    Везде, где встречается в коде слово «Producty» вы должны его заменить на то наименование, которое ранее присвоили для своего листа в поле «(Name)» области «Properties» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.

    Наименование для листа в Microsoft Excel

    Теперь рассмотрим такую строку:

    nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row

    Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.

    Второй столбец таблицы в Microsoft Excel

    Далее рассмотрим строку

    If .Range("A2").Value = "" And .Range("B2").Value = "" Then

    «A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.

    Две первые ячейки таблицы с данными в Microsoft Excel

    Переходим к строке

    Producty.Range("Name").Copy

    В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.

    Имя поля наименования товара в форме ввода в Microsoft Excel

    В строках


    .Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
    .Cells(nextRow, 3).Value = Producty.Range("Volum").Value
    .Cells(nextRow, 4).Value = Producty.Range("Price").Value
    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value

    наименования «Volum» и «Price» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.

    Наименование полей количество и цена в Microsoft Excel

    В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.

    Колонки в таблице в Microsoft Excel

    В строке производится умножение количества товара на его цену:

    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value

    Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.

    Колонка для вывода суммы в Microsoft Excel

    В этом выражении выполняется автоматическая нумерация строк:


    If nextRow > 2 Then
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & nextRow)
    Range("A2:A" & nextRow).Select
    End If

    Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты « — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.

    Столбец с нумерацией в Microsoft Excel

    В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:

    .Range("Diapason").ClearContents

    Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.

    Наименование полей для ввода данных в Microsoft Excel

    Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.

    После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.

  53. Код в редакторе макросов в Microsoft Excel

  54. После этого возвращаемся на лист Excel. Теперь нам следует разместить кнопку, которая будет активировать созданный макрос. Для этого переходим во вкладку «Разработчик». В блоке настроек «Элементы управления» на ленте кликаем по кнопке «Вставить». Открывается перечень инструментов. В группе инструментов «Элементы управления формы» выбираем самый первый – «Кнопка».
  55. Выбор элемента управления в Microsoft Excel

  56. Затем с зажатой левой клавишей мыши обводим курсором область, где хотим разместить кнопку запуска макроса, который будет производить перенос данных из формы в таблицу.
  57. Указание границ кнопки в Microsoft Excel

  58. После того, как область обведена, отпускаем клавишу мыши. Затем автоматически запускается окно назначения макроса объекту. Если в вашей книге применяется несколько макросов, то выбираем из списка название того, который мы выше создавали. У нас он называется «DataEntryForm». Но в данном случае макрос один, поэтому просто выбираем его и жмем на кнопку «OK» внизу окна.
  59. Окно назначения макроса объекту в Microsoft Excel

  60. После этого можно переименовать кнопку, как вы захотите, просто выделив её текущее название.
    Переименовывание кнопки в Microsoft Excel

    В нашем случае, например, логично будет дать ей имя «Добавить». Переименовываем и кликаем мышкой по любой свободной ячейке листа.

  61. Кнопка переименована в Microsoft Excel

  62. Итак, наша форма полностью готова. Проверим, как она работает. Вводим в её поля необходимые значения и жмем на кнопку «Добавить».
  63. Ввод данных в форму в Microsoft Excel

  64. Как видим, значения перемещены в таблицу, строке автоматически присвоен номер, сумма посчитана, поля формы очищены.
  65. Значения первой строки внесены в таблицу в Microsoft Excel

  66. Повторно заполняем форму и жмем на кнопку «Добавить».
  67. Повторный ввод данных в форму в Microsoft Excel

  68. Как видим, и вторая строка также добавлена в табличный массив. Это означает, что инструмент работает.

Вторая строка добавлена в таблицу в Microsoft Excel

Читайте также:
Как создать макрос в Excel
Как создать кнопку в Excel

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

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

Вы можете помочь пользователям правильно вводить данные в классические базы данных 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 , вы можете использовать следующую формулу в другой ячейке, чтобы выполнить преобразование:

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

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

Как создать простую форму ввода без VBA в Microsoft Excel

Обычно заполнение данных в таблицах Microsoft Excel происходит вручную, однако это не всегда удобно, особенно если речь идет о проектах с большим количеством столбцов. Часто приходится при помощи мыши пролистывать лист в сторону и выполнять лишние движения для переключения между ячейками. Решается эта проблема путем создания простой формы ввода, что реализуемо без навыков программирования на VBA.

Подготовительные действия

Сначала понадобится подготовить сам лист, а именно – сформировать таблицу, чтобы в будущем форма ее корректно распознала. Вместе с этим нужно активировать кнопку для вызова формы, поскольку по умолчанию в новых версиях Microsoft Excel она не добавлена на панель быстрого доступа. 

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

  2. На ней разверните список «Таблицы» и кликните левой кнопкой мыши по варианту «Таблица».Кнопка создания таблицы для создания простой формы ввода в Microsoft Excel

  3. Расположение таблицы уже будет задано по умолчанию, поэтому останется только подтвердить данное действие.Подтверждение создания таблицы для создания простой формы ввода в Microsoft Excel

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

  5. Далее понадобится добавить кнопку вызова формы, для чего перейдите на вкладку «Файл».Переход на вкладку Файл для создания простой формы ввода в Microsoft Excel

  6. Нажмите по пункту «Другие» и из появившегося меню выберите пункт «Параметры».Открытие раздела с параметрами для создания простой формы ввода в Microsoft Excel

  7. В новом окне с настройками на панели слева выберите раздел «Панель быстрого доступа» и установите фильтр для команд «Команды не на ленте».Выбор параметра для создания простой формы ввода в Microsoft Excel

  8. Среди всех команд отыщите «Форма», выделите ее левой кнопкой мыши и нажмите «Добавить».Добавление кнопки на панель быстрого доступа для создания простой формы ввода в Microsoft Excel

  9. На этом процесс настройки закончен, поэтому убедитесь в том, что кнопка теперь отображается в перечне справа, после чего нажмите «ОК».Подтверждение добавления кнопки для создания простой формы ввода в Microsoft Excel

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Заполнение простой формы ввода

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

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

  2. Начните с нажатия по кнопке «Добавить», чтобы создать новую строку для заполнения.Создание новой строки для создания простой формы ввода в Microsoft Excel

  3. Введите по очереди значения для каждых ячеек из столбцов с названиями, затем нажмите Enter для подтверждения ввода.Заполнение данных для создания простой формы ввода в Microsoft Excel

  4. Сразу же можете приступить к добавлению следующей строчки и делать так до тех пор, пока не завершите ввод всех значений для данной таблицы.Переключение на следующую строчку для создания простой формы ввода в Microsoft Excel

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

Наши постоянные авторы и читатели делятся лайфхаками, основанными на личном опыте. Полная свобода самовыражения.

Рекомендуем

Поворот текста в Google Таблицах

Как посмотреть упоминания в Discord

Открытие Microsoft Excel в разных окнах

Как удалить сервер в Discord

Как исправить работу стрелок клавиатуры в Microsoft Excel

В статье рассказывается, как настроить подстановку данных в документы сложной структуры
(где каждая буква — в отдельной клетке), при помощи программы заполнения документов.

Выглядят заполняемые документы примерно так: (щелкните на картинке для увеличения)

Заявление на регистрацию ККМ

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

Самый простой, на мой взгляд, способ добиться желаемого, — подставлять данные в «невидимые» ячейки,
а потом, при помощи формулы =ПСТР(), подтягивать отдельные буквы нужные ячейки.

(для ручной вставки текста в подобные бланки есть специальный макрос, но в нашем случае он не подойдёт)

Сделать ячейку «невидимой» —  очень просто. Для этого достаточно назначить шрифту ячейки белый цвет.

А формулы будут иметь такой вид:

=ПСТР(АдресНевидимойЯчейки;1;1)
=ПСТР(АдресНевидимойЯчейки;2;1)
=ПСТР(АдресНевидимойЯчейки;3;1)
и т.д.

На следующем скриншоте показано, как это сделано: (щелкните на картинке для увеличения)

Теперь осталось выбрать место для «невидимой» ячейки, вписать в неё код поля (например, {улица}),
и проставить формулы во все ячейки-клеточки.

Делать это вручную — достаточно долго, да и легко ошибиться при вводе формул.

Для автоматизации настройки подобных шаблонов, в программе заполнения документов имеется специальная опция (см. скриншот)

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

  1. возьмёт текст из буфера обмена Windows (предполагается, что перед этим вы скопировали код поля в исходной таблице)
  2. вставит этот текст в ПЕРВУЮ из выделенных ячеек, назначив этой ячейке белый цвет шрифта
  3. пропишет формулы =ПСТР() с нужными параметрами, СО ВТОРОЙ ДО ПОСЛЕДНЕЙ выделенной ячейки

Как это работает — можно посмотреть в видеоинструкции:

<видео будет добавлено чуть позже>

  • 24546 просмотров

Skip to content

Как сделать автозаполнение в Excel

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

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

Ниже вы видите план этой статьи. Нажмите на ссылку, которая вам особенно интересна, чтобы сразу перейти к главному.

Функция автозаполнения.

Если вы просто хотите скопировать одно и то же значение вниз или вам нужно получить последовательность чисел или текстовых значений, маркер заполнения в Excel – это как раз то, что вам нужно. 

Маркер заполнения – это небольшой квадрат, который появляется в правом нижнем углу, когда вы выделяете ячейку или диапазон.

маркер автозаполнения

 Эта крошечная, почти незаметная точка дает вам множество полезных опций, которые можно использовать практически ежедневно.

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

Вы можете автоматически заполнить ячейки либо по строке, либо по столбцу.

автозаполнение текста

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

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

автозаполнение чисел

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

автозаполнение числовой прогрессии

Эксель даже будет чередовать последовательности, если выбранные ячейки не связаны друг с другом, как на картинке ниже.

автозаполнение текста с числами

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

Предположим, вы уже слышали о приёмах, которые я описал выше. Я все еще верю, что некоторые из них показались вам новыми. Так что продолжайте читать, чтобы узнать больше об этом популярном, но недостаточно изученном инструменте.

Как заполнить большой диапазон двойным щелчком.

Предположим, у вас есть огромная база данных с именами. Каждому имени нужно присвоить порядковый номер. Вы можете сделать это практически мгновенно, введя в начальные ячейки первые два числа и дважды щелкнув маркер заполнения Excel.

Примечание. Этот совет будет работать только в том случае, если у вас есть значения слева или справа от столбца, который необходимо заполнить. Дело в том, что Excel просматривает соседний столбец, чтобы определить последнюю ячейку в диапазоне для заполнения. Также имейте в виду, что если у вас есть значения справа и слева от пустого диапазона, в котором вы хотите сделать автозаполнение, то ряд ячеек будет заполнен по самому длинному столбцу.

Автозаполнение числами

Одним из самых распространенных приёмов автозаполнения является ввод последовательных чисел. Допустим, нам нужно выполнить нумерацию от 1 до 10. Чтобы не вводить значения вручную, делаем так:

Способ 1.

Введите в первые две ячейки диапазона первые два числа. Выделите эти две ячейки и протащите вниз маркер автозаполнения.

Эксель автоматически создаст арифметическую прогрессию на основе этих чисел и заполнит диапазон нужными значениями.

Буквально этот метод автозаполнения числами был описан нами выше. Так что останавливаться на нем подробно не будем.

Способ 2.

Пишем в самой верхней ячейке будущего списка начальное число (например, 1). Затем по описанному выше принципу воспользуемся маркером заполнения, протянув его вниз на 10 строк.

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

Получаем список чисел от 1 до 10 буквально за пару кликов.

О других возможностях функции «Заполнить» читайте ниже.

Способ 3.

Введите в первую ячейку диапазона начальное число (допустим, 1). Во время протягивания маркера заполнения вниз одновременно с зажатой левой копкой мыши удерживаем клавишу Ctrl (на Mac – клавишу Option). Рядом с знакомым нам значком в виде черного плюсика при этом должен появиться еще один плюсик поменьше – слева и сверху.

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

Как сделать автозаполнение ячеек с текстом

Если ваши исходные ячейки содержат только текст, то при автозаполнении он будет просто скопирован.

Для параметра автозаполнения не проблема копировать значения, содержащие текст с числами. Excel будет искать закономерность в имеющихся числах. Что касается текста, он будет повторяться.

автозаполнение с текстом

Как видите, инструмент автозаполнения отличает текст от чисел. И он даже знает, что есть 4 квартала.

Чтобы расширить эти возможности, для автозаполнения ячеек с текстом можно использовать списки. Об этом читайте ниже по ссылке.

Инструмент “Заполнить”

Сделать автозаполнение ячеек в Excel можно с помощью специального инструмента “Заполнить”. Алгоритм действий следующий:

  1. Вносим информацию в исходную ячейку. После этого любым удобным способом (например, с помощью зажатой левой кнопки мыши) выделяем область ячеек, к которой хотим применить автозаполнение.
  2. На ленте щелкаем по значку в виде стрелке вниз (это и есть инструмент “Заполнить”). Откроется перечень возможных вариантов, среди которых выбираем тот, который нужен (“вниз” в нашем примере).

Получаем автоматически заполненный диапазон ячеек. В данном случае – с датами.

С помощью функции “Заполнить” можно, в том числе, продолжить ряд прогрессии:

Как и в алгоритме выше, указываем в начальной ячейке первое значение. Затем выделяем требуемый диапазон, кликаем по инструменту “Заполнить” и останавливаемся на варианте “Прогрессия”.

Настраиваем параметры прогрессии в появившемся окошке:

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

Использование функции мгновенного заполнения

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

Предположим, что столбец A содержит имена, столбец B — фамилии, а вы хотите заполнить столбец C именами с фамилиями. Если ввести хотя бы одно полное имя в столбец C, функция мгновенного заполнения поможет наполнить  остальные ячейки соответствующим образом.

Введем имя и фамилию в С2. Затем при помощи меню выберем инструмент Мгновенное заполнение или нажмем комбинацию CTRL+E.

мгновенное заполнение Excel

Excel определит закономерность в ячейке C2 и заполнит ячейки вниз до конца имеющихся данных.

Как создать собственный список для автозаполнения

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

  1. Введите заголовок и заполните свой список.

создание списка автозаполнения

Примечание. Пользовательский список может содержать только текст или текст с числами. Если вам нужно хранить в нем только числа, создайте список чисел в текстовом формате.

  1. Выберите диапазон ячеек, который содержит данные для вашего нового списка автозаполнения.
  2. В Excel 2003 перейдите в Инструменты -> Параметры -> вкладка Пользовательские списки.

В Excel нажмите кнопку Office -> Параметры Excel -> Дополнительно -> прокрутите вниз, пока не увидите кнопку «Изменить настраиваемые списки…».

создание собственного списка для автозаполнения

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

  1. Нажмите кнопку «Импорт», чтобы поместить свой набор значений в поле «Пользовательские списки».

импорт значений в собственный список автозаполнения

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

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

Как получить повторяющуюся последовательность произвольных значений

Если вам нужна серия повторяющихся значений, вы все равно можете использовать автозаполнение. Например, вам нужно повторить ряд:  ДА, НЕТ, ИСТИНА, ЛОЖЬ. Сначала введите все эти значения вручную, чтобы дать Excel шаблон. Затем просто возьмите мышкой маркер заполнения и перетащите его в нужную ячейку.

Автозаполнение по горизонтали и вертикали

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

Просто выберите ячейки со значениями и перетащите маркер заполнения в нужном направлении.

Автозаполнение сразу нескольких строк или столбцов

Автозаполнение Excel может работать с данными сразу в нескольких строках или столбцах. Если вы выберете две, три или более ячеек и перетащите маркер заполнения, все они будут заполнены.

Как вставить пустые ячейки при автозаполнении

Автозаполнение также позволяет создавать серии с пустыми ячейками, как на скриншоте ниже.

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

То же самое можно делать и с пустыми столбцами, протащив маркер вправо.

Как настроить параметры автозаполнения

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

  1. Щелкните правой кнопкой мыши маркер заполнения и перетащите его. После этого вы увидите список с автоматически всплывающими опциями, как на скриншоте ниже:

параметры автозаполнения в Excel

Посмотрим, что предлагают эти варианты.

  1. Копировать ячейки — заполняет диапазон одним и тем же значением.
  2. Заполнить – автозаполнение заполнит диапазон в соответствии с заданным шаблоном.
  3. Заполнить только форматы — эта опция автозаполнения Excel будет копировать только формат ячеек без извлечения каких-либо значений. Это может быть полезно, если вам нужно быстро скопировать форматирование, а затем ввести значения вручную.
  4. Заполнить только значения — копирует только значения. Если фон исходных ячеек заполнен цветом, то он не сохранится.
  5. Заполните дни / будни / месяцы / годы — эти функции делают то, что предполагают их названия. Если ваша начальная ячейка содержит один из них, вы можете быстро заполнить диапазон, щелкнув один из вариантов.
  6. Линейное приближение – создает линейный ряд или линейный тренд наилучшего соответствия.
  7. Экспоненциальное приближение – генерирует серию роста или геометрическую тенденцию роста.
  8. Мгновенное заполнение  – помогает ввести много повторяющейся информации и правильно отформатировать данные.
  9. Прогрессия… — этот параметр вызывает диалоговое окно с перечнем дополнительных возможностей для выбора: какую именно числовую прогрессию вы хотите получить.

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

  1. Другой способ получить список — щелкнуть маркер заполнения, перетащить его и затем щелкнуть значок «Параметры автозаполнения».

При нажатии на этот значок открывается список с параметрами.

Как видите, этот список просто повторяет некоторые функции, которые мы уже описали выше.

Самый быстрый способ автозаполнения формулами  

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

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

Предположим, у вас есть таблица, и вы хотите добавить новый столбец с формулой. Например, в списке товаров нужно посчитать сумму, перемножив цену и количество.

  1. Преобразуйте свой диапазон в таблицу Excel. Выберите любую ячейку в диапазоне данных и нажмите Ctrl+Т, чтобы вызвать диалоговое окно «Создать таблицу». Или используйте кнопку «Форматировать как таблицу» на ленте «Главная». Если в ваших данных есть заголовки столбцов, убедитесь, что установлен флажок «Таблица с заголовками». Обычно Excel распознает заголовки таблиц автоматически, а если нет, установите этот флажок вручную.
  2. Введите формулу в первую ячейку пустого столбца. 

  1. Нажмите Enter. Excel автоматически заполняет все пустые ячейки в столбце этой формулой.

Если вы хотите по какой-то причине вернуться от таблицы к обычному диапазону данных, выберите любую ячейку в вашей таблице, затем по правому клику мышкой выберите Таблица => Преобразовать в диапазон.

Вставьте одни и те же данные в несколько ячеек, используя Ctrl+Enter

Скажем, у нас есть таблица со списком товаров. Мы хотим заполнить пустые ячейки в колонке «Количество» словом «нет» , чтобы упростить фильтрацию данных в будущем.

Для этого выполним следующие действия.

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

  1. Отредактируйте одну из выделенных ячеек, введя в нее нужное слово «нет»
  2. Чтобы сохранить изменения, нажмите Ctrl+Enter вместо Enter. В результате все выбранные ячейки будут заполнены введенными вами данными, как на скриншоте ниже.

Как включить или отключить автозаполнение в Excel

Инструмент автозаполнения включен в Excel по умолчанию. Поэтому всякий раз, когда вы выбираете диапазон, вы можете видеть в его правом нижнем углу соответствующий значок. Если вам нужно, чтобы автозаполнение Excel не работало, вы можете отключить его, выполнив следующие действия:

  1. Нажмите Файл в Excel 2010-2019 или кнопку Office в версии 2007.
  2. Перейдите в Параметры -> Дополнительно и снимите флажок Разрешить маркер заполнения и перетаскивание ячеек.

где находится автозаполнение в Excel

На скриншоте выше вы видите, где находится в Excel автозаполнение.

В результате снятия флажков автозаполнение будет отключено.

Примечание. Чтобы предотвратить замену текущих данных при перетаскивании маркера заполнения, убедитесь, что установлен флажок «Предупреждать перед перезаписью ячеек». Если вы не хотите, чтобы Excel отображал сообщение о перезаписи не пустых ячеек, просто снимите этот флажок.

Включение или отключение параметров автозаполнения

Если вы не хотите, чтобы кнопка «Параметры автозаполнения» отображалась каждый раз при перетаскивании маркера заполнения, просто отключите ее. Точно так же, если кнопка не отображается, когда вы используете маркер заполнения, вы можете включить ее.

  1. Перейдите к кнопке Файл / Офис -> Параметры -> Дополнительно и найдите раздел Вырезать, скопировать и вставить.
  2. Снимите флажок Показывать кнопки параметров вставки при вставке содержимого.

Спасибо, что дочитали до конца. Теперь вы знаете все или почти все о функции автозаполнения. 

Если вы знаете еще приемы, ускоряющие ввод данных, поделитесь ими в комментариях. Буду рад добавить их с вашим авторством в эту статью.

Сообщите мне, если мне не удалось ответить на все ваши вопросы и проблемы, и я постараюсь вам помочь. Напишите в комментариях. Будьте счастливы и преуспевайте в Excel!

Как сделать диаграмму Ганта Думаю, каждый пользователь Excel знает, что такое диаграмма и как ее создать. Однако один вид графиков остается достаточно сложным для многих — это диаграмма Ганта.  В этом кратком руководстве я постараюсь показать…
Быстрое удаление пустых столбцов в Excel В этом руководстве вы узнаете, как можно легко удалить пустые столбцы в Excel с помощью макроса, формулы и даже простым нажатием кнопки. Как бы банально это ни звучало, удаление пустых…
6 способов быстро транспонировать таблицу В этой статье показано, как столбец можно превратить в строку в Excel с помощью функции ТРАНСП, специальной вставки, кода VBA или же специального инструмента. Иначе говоря, мы научимся транспонировать таблицу.…
Как быстро заполнить пустые ячейки в Excel? В этой статье вы узнаете, как выбрать сразу все пустые ячейки в электронной таблице Excel и заполнить их значением, находящимся выше или ниже, нулями или же любым другим шаблоном. Заполнять…

Like this post? Please share to your friends:
  • Шаблон ввода в ячейку excel
  • Шаблон вакансии на работу word
  • Шаблон в текстовом редакторе ms word определяет совокупность параметров
  • Шаблон в текстовом процессоре microsoft word это
  • Шаблон в программе microsoft word это