Шаг 27 - Обмен данными между формой и таблицей
Задача. Я хочу сделать ряд справок и страницу с константами. Одной из констант будет фамилия директора, которая используется в справках. При изменении этой константы фамилия в справке должна автоматически меняться. И я хочу менять фамилию из формы.
Создаем лист Константы и на нем ячейке даем имя.
И любое количество листов со справками. Ссылаясь на ячейку с фамилией.
Как вы понимаете, сколько я листов не создам, воспользовавшись ссылкой на ячейку =director, стоит мне изменить данные в ячейки с фамилией директора она везде поменяется. Это само нормально. Вот только менять я хочу из формы, например, чтобы с константами спрятать лист подальше от пользователя. Ну давайте создавать форму. Идем в редактор VBA:
При запуске формы мы должны прочитать данные с листа:
Private Sub UserForm_Activate() Worksheets.Item("Konst").Activate UserForm1.TextBox1.Text = Range("Director").Text End Sub
При нажатии на кнопку "Новый" заменить данные на листе константы (автоматически поменяются на справках):
Private Sub CommandButton2_Click() Range("Director").Value = UserForm1.TextBox1.Text End Sub
По нажатию на "Хватит" закрыть форму:
Private Sub CommandButton1_Click() Unload Me End Sub
Как видите использование констант в тех случаях, где это разумно на отдельном листе позволяет просто создать форму. Потом форму можно скрыть и вызвать из меню для замены значений.
Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.