如何在Excel中提取1000+复选框的值?

时间:2018-08-27 21:26:05

标签: excel vba checkbox

我需要提取一个复选框的值(Form Control版本)并将其插入到单元格中。我知道右键单击复选框的方法-格式控制-控件选项卡-单元格链接,但是对于电子表格,我需要这样做,因为它具有1000多个复选框。因此执行该过程将是一项巨大的考验!

excel函数中是否存在复选框符合的?换句话说,如果我要将该复选框调用到函数中,则该复选框将响应哪个变量?

即:=IF(CheckBox3 = TRUE, "Complete", " ")(我指的是 CheckBox3 文本)

或者是否有获取此信息的替代方法?任何帮助或建议,将不胜感激! (Photo of checkbox example

1 个答案:

答案 0 :(得分:0)

您可以循环收集形状并测试是否为复选框并应用公式

Option Explicit
Public Sub GetValues()
    Dim shp As Shape, counter As Long
    Application.ScreenUpdating = False
    With Worksheets("Sheet1")
        For Each shp In .Shapes
            If shp.Type = msoFormControl Then
                counter = counter + 1
                .Cells(counter, 1) = shp.NAME
                 If shp.ControlFormat.Value = 1 Then .Cells(counter, 2) = "Complete"
            End If
        Next
    End With
    Application.ScreenUpdating = True
End Sub

您可能需要添加其他测试,例如,如果它们被称为“复选框1”,“复选框2”等,则类似:

If shp.Type = msoFormControl And InStr(shp.NAME, "Check Box") > 0 Then