2016-10-28 2 views
0

снова здравствуйте Stack Overflow -Excel VBA Static (Non-Volatile) Переменная - UserForm

Работа с UserForm в Excel 2010 VBA, У меня есть текстовое поле под названием "reviewerName", которые должны быть приведены значения по умолчанию, установленный Пользователь. Сейчас у меня есть по умолчанию, как:

Private Sub userform_initialize() 
    reviewerName.text = "Your name here" 
End Sub 

Когда я открываю форму, уже есть «Ваше имя здесь» заполненное на текстовом поле. Большой! Но если кто-то другой перезаписывает его своим именем, как мне установить значение по умолчанию для нового имени? Если я закрываю и открываю форму, может ли рецензентName = «Боб»? Что такое команда для обновления переменной reviewerName, чтобы она была статичной и может использоваться при следующей открытии книги?

Спасибо!

+0

reviewName не является переменной. Это поле формы. Возможно, вы просто хотите вставить этот точный код в событие 'userform_activate()' вместо 'userform_initialize()'? – JNevill

+1

Не существует команды для сохранения таких переменных. Для таких форм обычно я использую нечто вроде «Application.UserName» или «Environ $ (« USERNAME »)». – Comintern

+0

Возможно ли создать постоянную переменную, возможно, на кнопке с командой, записав новое имя пользователя в ячейку (1,1) на листе, а затем на открытый взгляд на ячейку (1,1) на листе? –

ответ

0

Работая с ним, один из способов сделать это, чтобы текстовое поле ссылалось на значение, уже находящееся в электронной таблице, эффективно предоставляя «статическую» переменную.

Private Sub userform_initialize() 
    reviewerName.text = Cell(1,24) 'form will look for a value in column X Row 1. 
End Sub 

Тогда, когда есть действие, чтобы отправить форму, одна из команд должно быть:

Private Sub submit_click() 
... 
Cells(1,24) = reviewerName.text 'writes a value in column X row 1. 
... 
End Sub 

При открытии формы снова нарисует значение из этой ячейки.

Смежные вопросы