在窗体复选框的运行时设置单元格链接

时间:2012-02-29 20:50:22

标签: excel vba

我正在努力从excel中的标准化表单中提取数据。有一个我需要状态的Forms Control CheckBox。显然,获得此功能的唯一方法是从单元格链接,其中值被放入单元格。问题是,无论谁将这种形式放在一起,都没有设置单元链接。有没有办法在运行时使用VBA执行此操作。我必须经历许多这些形式,所以我试图避免手动操作。

1 个答案:

答案 0 :(得分:0)

我认为您指的是放置在工作表上的表单复选框控件,在这种情况下,您可以在不设置单元格链接的情况下获取控件的状态。像这样:

Sub HTH()
    Dim iLoop As Integer       

    '// Get value of check box by its index
    MsgBox (GetCheckBoxState(1))

    '// Get value of check box by its name
    MsgBox (GetCheckBoxState("Check Box 1"))

     '// Loop through all checkboxes and get values
    For iLoop = 1 To ActiveSheet.CheckBoxes.Count
        MsgBox (GetCheckBoxState(iLoop))
    Next

End Sub
Function GetCheckBoxState(vCheckBox As Variant) As String
    Select Case ActiveSheet.CheckBoxes(vCheckBox).Value
        Case xlOn
            GetCheckBoxState = "Checked"
        Case xlOff
          GetCheckBoxState = "UnChecked"
        Case xlMixed
          GetCheckBoxState = "Mixed"
    End Select
End Function

如果您指的是用户表单上的复选框控件,那么Tim指出它应该是这样的情况:

MsgBox (UserForm1.CheckBox1.Value)