Добавление новой строки в таблицу и сортировка записей по алфавиту с помощью кода VBA Excel. Пример таблицы, формы и результатов сортировки.
Пример таблицы и формы
Таблица, в которую будем добавлять новую строку и проводить сортировку записей с помощью кода VBA Excel:
Пример пользовательской формы для добавления новой записи в таблицу, которая будет загружаться при нажатии кнопки «Добавить» на рабочем листе:
Добавление строки и сортировка
Кнопка «Добавить» на рабочем листе — это элемент ActiveX, вставленный на закрепленную строку, чтобы не «убегал» при прокрутке. Нажатие этой кнопки вызывает загрузку пользовательской формы UserForm1:
1 2 3 |
Private Sub CommandButton1_Click() UserForm1.Show End Sub |
Код расположен в модуле листа.
При инициализации формы заполняем список элемента управления ComboBox1 наименованиями единиц измерения, чтобы их можно было выбирать, а не заполнять вручную:
1 2 3 4 5 6 7 |
Private Sub UserForm_Initialize() 'Добавляем в поле со списком виды единиц измерения With ComboBox1 .AddItem "шт" .AddItem "кг" End With End Sub |
Код расположен в модуле формы.
Пример заполненной формы для добавления новой строки в таблицу:
Код VBA Excel, добавляющий новую строку в таблицу и сортирующий записи (запускается кнопкой «Добавить», расположенной на форме):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Private Sub CommandButton1_Click() Dim n As Long 'Заполняем новую строку таблицы данными из формы n = Range("A1").CurrentRegion.Rows.Count + 1 Cells(n, 1) = TextBox1.Text Cells(n, 2) = ComboBox1.Text Cells(n, 3) = TextBox2.Text 'Задаем параметры сортировки и выполняем ее With ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range("A1") .Header = xlYes .SetRange Range("A1").CurrentRegion .Apply End With Unload Me End Sub |
Код расположен в модуле формы.
Результат работы кода:
Я здесь не совсем удачно назвал обе кнопки — «Добавить», можно было на рабочем листе, например, кнопку назвать — «Новая строка».
Подробнее о сортировке и ее параметрах вы можете прочитать в статье: Сортировка таблицы (диапазона).
Следующая статья: Заполнение формы из таблицы