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