Последовательный ввод данных в Excel

Последовательный ввод данных в Excel

Добрый день, уважаемые читатели блога и зрители канала! 

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

Если не отклоняться от стандартного способа ввода, то наши действия укладываются в следующий алгоритм:

Ввод данных -> Tab -> ввод данных -> Tab -> ввод данных -> Enter

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

 

последовательный ввод данных в Excel

 

Если сбиться и по привычке нажать Enter вместо Tab, то придётся устанавливать курсор в начало диапазона данных и снова повторять всю процедуру. Не удобно. Особенно если у нас идёт первоначальный ввод данных и их много.

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

Построим работу на диалоговых окнах. В них будем вводить соответственно три переменных - "Название магазина", "Дата", "Выручка".

Переходим на вкладку "Разработчик" и добавляем новый модуль в книгу. О том как это сделать - ЗДЕСЬ.

  1. Вкладка "Разработчик", блок кнопок "Код", кнопка "Visual Basic";
  2. Далее "Insert" - > "Module".

 

Теперь внесём туда следующий код. Его вы можете модифицировать по своему желанию.

 

Sub SerialInput()
Dim strDate As String
Dim strSum As String
Dim strMag As String
Dim lngRow As Long

Do
lngRow = Range("A65536").End(xlUp).Row + 1

' Вводим название магазина
strMag = InputBox("Введите название магазина")
If strMag = "" Then Exit Sub

' Вводим дату
strDate = InputBox("Введите дату")
If strDate = "" Then Exit Sub

' Вводим выручку
strSum = InputBox("Введите выручку")
If strSum = "" Then Exit Sub

' Записываем данные в ячейки таблицы
Cells(lngRow, 1) = strMag
Cells(lngRow, 2) = strDate
Cells(lngRow, 3) = strSum

Loop

End Sub

Пояснения

Как вы уже поняли, первым делом мы объявляем три переменных как и договаривались - strMag, strDate, strSum. Даём им значение - СТРОКА (String).

Также необходимо объявить переменную lngRow, она будет определять конец нашего диапазона. В примере у нас три столбца и 65536 строк. Также эта переменная будет цикличной (в конце макроса стоит команда Loop, петля).

Далее мы выводим три диалоговых окна (InputBox) с условием If str*** = "" Then Exit Sub, то есть если любое из полей будет пустым, макрос закончит свою работу.

Оставшиеся значения (Cells) записывают в соответствующие ячейки то, что введено в диалоговые окна.

Проверим правильность работы макроса. На вкладке "Разработчик" жмём кнопку макросы (альтернатива Alt+F8) и нажимаем кнопку "Выполнить".

последовательный ввод данных в Excel

 

Всё работает! Если же нам нужно продолжить ввод данных, просто устанавливаем курсор в первую ячейку (А10, А20, А30 и т.д.) и снова запускаем макрос.

 

Что-то было непонятно? Смотрим обучающее видео!

Post Author: Иван

Добавить комментарий