ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Алгоритм формирования источника информации для поля со списком в пользовательской форме1) Определить количество заполненных строк специальностями в столбце A на листе «Профессии».
Для этого используются: Функция рабочего листа CountA – подсчитывает количество непустых ячеек в указанном диапазоне. В качестве диапазона мы будем рассматривать весь столбец А - Range("A:A"). Так как это функция, то необходимо указать какой переменной мы присвоим вычисленное значение. В нашей задаче мы назвали переменную «список» Полная запись: Список= Application.CountA(Sheets("Профессии").Range("A:A")) Результат работы функции: Значение переменной список=7 2) Сформировать диапазон списка специальностей. Мы знаем, что адрес начальной ячейки диапазона на листе «Профессии» А1. Адрес конечной ячейки диапазона получится путем «склеивания» имени столбца А и значения, которое хранится в переменной «список». Переменная «список» объявлена как тип Integer, а «склеивание» можно осуществлять только со строковыми переменными. Поэтому мы должны к переменной «список» применить функцию CStr. Эта функциименяет тип данных у переменных, а затем провести «склеивание»и присвоить полученный диапазон переменной. Полная запись : Д_списка = "A1:A" & CStr(список) Результат работы: Д_списка =”A1:A7” 3) Присвоить имя «Специальности» сформированному диапазону. Используем свойство Name объекта Range, расположенного на листе «Профессии» Полная запись: Sheets("Профессии").Range(Д_списка).Name = "Специальности" Результат работы: Диапазону ”A1:A7” на листе «Профессии» присвоено имя «Специальности».
4) Присоединить полю в пользовательской форме список специальностей. ComboBox1 – объект поле со списком в пользовательской форме RowSource – свойство объекта «источник-строка» Т.е. источником для формирования поля со списком является диапазон ячеек с именем «Специальности». Полная запись: .ComboBox1.RowSource = «Специальности» Программа: Private Sub CommandButton1_Click() Dim список As Integer список=Application.CountA(Sheets(«Профессии»).Range(«A:A»)) 'Определим диапазон списка специальностей Д_списка = «A1:A» & CStr(список) 'Присвоим имя диапазону списка специальностей Sheets(«Профессии»).Range(Д_списка).Name = «Специальности» ‘Очистим ячейки With UserForm1 .TextBox1.Text = “” .ComboBox1.Text = “” 'Введем список для поля со списком .ComboBox1.RowSource = «Специальности» 'Выведем пользовательскую форму на экран .Show End With End Sub
Private Sub CommandButton1_Click() Dim фамилия As String, специальность As String Dim строка As Integer, имя As String 'строка - номер последней заполненной строки на листе "Сотрудники" 'Определим номер последней заполненной строки строка = Application.CountA(Sheets("Сотрудники").Range("A:A")) With UserForm1 'переменной «фамилия» и «имя» присвоим содержимое поля TextBox1 и TextBox2 фамилия =.TextBox1.Text имя =.TextBox2.Text 'переменной «специальность» присвоим содержимое поля ComboBox1 специальность =.ComboBox1.Text End With With Sheets("Сотрудники") .Cells(строка + 1, 1) = фамилия .Cells(строка + 1, 2) = имя .Cells(строка + 1, 3) = специальность End With 'Очистим содержимое ComboBox1.Text, TextBox1.Tex и ТextBox2.Text UserForm1.ComboBox1.Text = "" UserForm1.TextBox1.Text = "" UserForm1.TextBox2.Text = "" End Sub
Private Sub CommandButton2_Click() UserForm1.Hide End Sub
Не нашли, что искали? Воспользуйтесь поиском:
|