复选框修改

时间:2015-06-16 11:54:07

标签: excel-vba checkbox vba excel

我有一个我没有找到答案的重要问题,是否可以增加复选框的宽度和高度,是否可以将复选框导出到另一个工作表中? / p>

是否可以创建多个复选框,例如500行或1000行?

2 个答案:

答案 0 :(得分:1)

第二个问题..............按行填充多个CheckBox:

Sub BoxMaker()
    For i = 1 To 4
        ActiveSheet.CheckBoxes.Add(358.5, 50, 100, 60).Select
    Next

    Dim s As Shape
    i = 2

    For Each s In ActiveSheet.Shapes
        s.Top = Cells(i, 1).Top
        s.Height = Cells(i, 1).Height
        s.Left = Cells(i, 1).Left
        s.Width = Cells(i, 1).Width
        i = i + 1
    Next
End Sub

enter image description here

第一个问题,只需更新 .Height .Width

答案 1 :(得分:1)

关于导出,将复选框的值链接到工作表中的任何单元格并导出这些单元格值...这里有很多关于如何导出单元格数据的描述。

要将复选框链接到单元格,请使用

Sub test()
Dim S As Shape

    Set S = ActiveSheet.Shapes(1)
    S.ControlFormat.LinkedCell = "B1"

End Sub

将此添加到Gary的学生代码中......

Sub BoxMaker()
    For i = 1 To 4
        ActiveSheet.CheckBoxes.Add(358.5, 50, 100, 60).Select
    Next

    Dim s As Shape
    i = 2

    For Each s In ActiveSheet.Shapes
        s.Top = Cells(i, 1).Top
        s.Height = Cells(i, 1).Height
        s.Left = Cells(i, 1).Left
        s.Width = Cells(i, 1).Width

        ' add Cell Link
        ' 2nd parameter of Cells(i, 2).Address sets column of linked cell ... in this case column B
        s.ControlFormat.LinkedCell = Cells(i, 2).Address

        i = i + 1
    Next
End Sub
首次点击复选框后,

字段将被填充。