2014-03-31 9 views
1

У меня возникли проблемы с моим макросом. У меня есть кнопка и несколько флажков в форме, я пытаюсь написать код, который, когда я нажимаю кнопку, проверяет диапазон («A1»). Текст после этого текста (который в этом случае является " CheckBox1"), и я хочу сказать, что-то вроде этого:excel dim cell text value as controls

questionnaire = Range("A1").Text 
questionnaire.Value = Range("A2").Value 

, так как я много флажков, как упоминалось ранее, я хочу, чтобы, когда я пишу имя некоторые элементы управления в „А1“, когда я нажимаю кнопку, что управление примет значение в «A2». проблема в том, что я не знаю, что я должен делать с вопросником DIM. пожалуйста, помогите

Спасибо

+2

Ваш вопрос не очень ясен. Вы хотите показать значение флажка в A2 - на основе номера флажка от A1? –

+0

предположим, что в ячейке «A1» он содержит текст «checkbox1», а в ячейке «A2» он содержит значение «1», когда я нажимаю кнопку, я хочу, что все, что находится в ячейке «A1», которая является моей «checkbox1» «иметь значение« 1 », что означает, что checkbox1.value = true – HumanlyRespectable

+1

Являются ли они ** Forms ** флажками или ** ActiveX ** флажками –

ответ

1

Попробуйте

Private Sub CommandButton1_Click() 
    CB = Sheets(3).Range("A1").Value 
    CBVal = Sheets(3).Range("A2").Value 

    For Each contr In UserForm1.Controls 
     If TypeName(contr) = "CheckBox" And contr.Name = CB Then 
      contr.Value = CBVal 
     End If 
    Next 
End Sub 

Убедитесь, что вы вводите правильный Название в A1.

enter image description here

+1

Если вы загружаете UserForm в немодальной форме, вы можете изменить любой из 4-х флажков. Просто введите имя в A1 и нажмите кнопку. –

+0

Большое спасибо, но просто быстрый вопрос, что вы тусклый CB, CBval как? – HumanlyRespectable

+1

Не затушили их ... так что они были бы Вариантом. Но по вашему запросу вы можете уменьшить CB как String и CBVal как Int или Bool. –