从userform复选框填充数据&可选按钮

时间:2016-08-01 16:04:50

标签: excel vba excel-vba

我正在创建一个userform,我希望能够在数据选项卡中填充值以及默认为某些值。 我想我有文本框和组合框,但无法找到使用多个可选按钮生成数据到一个单元格的信息,具体取决于选择。example draft

从示例中,我的标准是"二级保险"我如何将它们全部链接起来,让我们说单元格b1是否填充了所选的选项? 我完全猜测,但我认为复选框更简单,如果选中则为true,如果未选中则为false。 我到目前为止只是一个代码,我遇到了一个代码,用一个指定文本/组合框的值来填充一个单元格,并且只是为每个我需要设置标准的列重复。

  Private Sub CommandButton1_Click()
    Dim LastRow As Long, ws As Worksheet

    Set ws = Sheets("Sheet1")
    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 'Finds the last blank row
    ws.Range("A" & LastRow).Value = TextBox1.Text 'Adds the TextBox1 into Col A & Last Blank Row
   Me.Hide
End Sub

组合框列表

Private Sub UserForm_Initialize()
ComboBox1.Value = ("N/A")
ComboBox1.List = Split("N/A Yes No")
End Sub

如果我缺少信息和/或如何附上我的测试工作表,请告诉我,希望你能看到图片(我不能在我的工作服务器上)。 提前感谢任何和所有教育。

1 个答案:

答案 0 :(得分:2)

如果选项按钮的标题与您想要的单元格文本相同,那么这样的内容可能就是您要存储的内容:

Private Sub CommandButton1_Click()
  Dim LastRow As Range
  With Sheets("Sheet1")
    Set LastRow = .Rows(.Cells(Rows.Count, 1).End(xlUp).Row + 1).Cells
    If OptionButton1 Then
      LastRow(2).Value2 = Me.OptionButton1.Caption
    ElseIf Me.OptionButton2 Then
      LastRow(2).Value2 = Me.OptionButton2.Caption
    Else
      LastRow(2).Value2 = Me.OptionButton3.Caption
    End If
  End With
End Sub

这会将所需的单元格设置为您选择的选项按钮的标题值。

要在userform中加载数据,您可以使用以下内容:

Sub Load_in(Row_To_Load As Long)
  Dim MyRow As Range
  With Sheets("Sheet1")
    Set MyRow = .Rows(Row_To_Load).Cells
    If MyRow(2).Value2 = OptionButton1.Caption Then
      OptionButton1.Value = True
    ElseIf MyRow(2).Value2 = OptionButton2.Caption Then
      OptionButton2.Value = True
    Else
      OptionButton3.Value = True
    End If
  End With
End Sub

为此,我认为这些名字没有改变。此外,如果未选择任何内容,将使用第三个选项(N / A)。加载它也是一样的。如果您不想这样做,只需将Else部分更改为ElseIf,使其看起来像前两个选项。