2015-10-05 1 views
0

У меня есть пользовательская форма vba для ввода данных в Excel 2010. Одно текстовое поле предназначено для ввода кодов стран. Я хочу использовать флажок, чтобы позволить пользователю заблокировать это текстовое поле после ввода в стране, чтобы они могли продолжать вводить данные без повторного ввода кода страны.use checkbox для блокировки текстового поля и сохранения значения

Моя предыдущая попытка состояла в том, чтобы проверить, был ли установлен флажок, и просто установите фокус на текстовое поле рядом с ним.

if checkbox.value = true then 
Me.txHome.setFocus 
else ws.Cells(newRow,5).Value = Me.txCountry.Value 
endif 

Но это не сработает.

Благодаря

ответ

0

Настройка общих переменных и использовать событие изменения флажок, чтобы присвоить его значение, как так:

Public String myCountry 

Sub CheckBox1_Change() 
    If CheckBox1.Value = True Then 
     myCountry = txCountry.Value 
    End If 

    txCountry.Locked = (CheckBox1.Value = True)  
End Sub 

Затем в существующем коде, просто используйте:

ws.Cells(newRow, 5).Value = myCountry 
+0

It не работает. Когда флажок снят, значение не добавляется к листу excel. – bing

+0

Удалено блок 'Else' - попробуйте приведенное выше изменение. –