2014-11-06 4 views
0

У меня есть некоторые кнопки с кнопками, такие как stp1, stp2, stp3 и т. Д. У меня есть что-то активное в ячейку, я хочу иметь возможность повторно активировать кнопку опции через ее имя, которое помещается в ячейку B6.Я хочу изменить значение кнопки опции в форме пользователя через свое имя в ячейке в Excel

Я попробовал многие вещи здесь пример:

Worksheets("Data").Select 
[B6].Value = oSel 'Option button select 
oSel.Value = True 'as to re-activate the option button 

Я получил имя с помощью:

For Each Control In Me.Controls 
    If InStr(Control.Name, "stp") Then 
     If Control.GroupName = "Beginning" Then 
      If Control.Value = True Then 
       oSel = Control.Name 
       Exit For 
      End If 
     End If 
    End If 
Next 

Если бы вы могли помочь мне бы очень признателен, если я забыл некоторые важные или вам просто нужно больше ... просто спросите. Я довольно новичок в VBA, и я экспериментирую.

ответ

0

Хотя это не совсем понятно, что вам нужно, этот простой пример «голых костей» должен продвинуть вас вперед. Он позволяет вам выбрать радиокнопку в пользовательской форме, которая обновляет ячейку «B6», а также поместить имя радиокнопки в ячейку «B6», которая обновляет форму пользователя. Ячейка «B6» находится на листе под названием «Данные»

Принимает пользовательскую форму под названием UserForm1 и три переключателя с именем stp1, stp2 и stp3, как показано. Обратите внимание, что для этого примера вы должны установить свойство ShowModal UserForm1 в False и установить для свойства «GroupName» каждого переключателя значение «Начало». Запустите пример, выбрав/запустив модуль UserForm1.

Example

Поместите этот код в общем модуле.

Sub chk() 
Set sel = Sheets("Data").Range("B6") 
    With UserForm1 
     For Each Control In .Controls 
      If Control.GroupName = "Beginning" Then 
       If Control.Name = sel.Value Then 
        Control.Value = True 
        Exit For 
       End If 
      End If 
     Next 
    End With 
End Sub 

Поместите этот код в модуле UserForm1

Private Sub UserForm_Initialize() 
    Call chk 
End Sub 

Private Sub stp1_Click() 
    With Me 
     Sheets("Data").Range("B6").Value = "stp1" 
    End With 
End Sub 

Private Sub stp2_Click() 
    With Me 
     Sheets("Data").Range("B6").Value = "stp2" 
    End With 
End Sub 

Private Sub stp3_Click() 
    With Me 
     Sheets("Data").Range("B6").Value = "stp3" 
    End With 
End Sub 

Поместите этот код в модуле Листовой «Data»

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim sel As Range 
Set sel = Sheets("Data").Range("B6") 
    If Target = sel Then 
     Call chk 
    End If 
End Sub 

Этих последние куски кода могут познакомить вас с понятием " события "и как начать использовать их.

+0

Thankyou, что первый блок кодирования - это то, что мне нужно. Я пытаюсь создать приключенческую игру, и вы можете перемещаться с помощью кнопок с настройками. Я создаю save/load, и мне нужно было хранить данные о местоположении. Я смог сохранить данные но мне нужен код, который у вас так чудесно предоставлен, чтобы загрузить позицию :) снова thankyou – xSh4de

+0

Возможно, вы отметите это как свой ответ, чтобы аккуратно закрыть это сообщение. Рад, что это помогло вам двигаться вперед. – barryleajo