Шаг 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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: