限制为仅选中1个复选框

时间:2015-07-06 16:51:42

标签: excel excel-vba ms-access checkbox excel-2010 vba

我从Access到Excel导入了带有复选框的表格。是否可以设置复选框,使用Excel时只能从导入的表中选择一个复选框?

2 个答案:

答案 0 :(得分:0)

在评论中,Jeeped非常重视单选按钮已经具有您正在寻找的功能。另一方面 - 如果您更喜欢复选框的美学,那么您当然可以使用它们。我在一个框架中创建了一个带有两个复选框的用户窗体(框架中没有其他控件),还包含一个用于显示所选选项的标签。选择一个时,以下代码将取消选择框架中的所有其他复选框。我使用非局部布尔变量来绕过其他复选框的事件处理程序,同时它们被更改以避免我遇到事件发生时的某种回声效果,而我并不想要它们(也许有一种不那么神奇的方式来做到这一点)。代码可以轻松扩展到分组框架中的任意数量的复选框。

Dim selecting As Boolean 'module level variable

Private Sub SelectOne(i As Long)
    Dim c As Control
    selecting = True
    For Each c In Frame1.Controls
        If c.Name <> "CheckBox" & i Then c.Value = False
    Next c
    DoEvents
    Label1.Caption = i & " selected"
    selecting = False
End Sub

Private Sub CheckBox1_Click()
    If Not selecting Then SelectOne 1
End Sub

Private Sub CheckBox2_Click()
    If Not selecting Then SelectOne 2
End Sub

答案 1 :(得分:0)

我认为这是最好的方法,并且更容易-至少在几个方框中-更多,您可以在excel中编写一些公式,然后向下拖动然后复制为值,然后将文本从excel复制粘贴到vba中。无论如何,这是我的做法: 我去了并在每个按钮下创建了代码-非常简单

curl_setopt(
    $connection, 
    CURLOPT_URL, 
    sprintf(
        "https://example.com/hWebService.php?aRegion=%s&aType=%s", 
        urlencode($aRc), 
        urlencode($aType)));