选中链接的单元格,复选框旁边的单元格,或获取复选框名称

时间:2014-08-20 19:08:24

标签: vba checkbox

我有一个装满Checkboxes的文档,我不想为每个复选框编写特定的VBA代码,因为文件大小需要保持相对较小。我试图用我的代码做的是当选中复选框时,它会自动选择它旁边的单元格(不使用“Range”硬编码),然后执行其余的编程VBA函数。

如何获取复选框的名称,选择链接的单元格,或使用某种“偏移”属性选中复选框旁边的单元格?我完全被难过了!

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

使用Form Controls代替ActiveX Controls复选框。

Select ActiveX

以下代码不适用于ActiveX控件的复选框。此外,您需要将宏指定给复选框,只需尝试从VBEditor运行此代码就会出错。

Add Macro

假设所有复选框都在同一张纸上,请选中所有复选框并为它们分配相同的宏,如下所示

       Sub checkBoxHandler()

            Dim shp As Shape

            Set shp = ActiveSheet.Shapes(Application.Caller)
            MsgBox shp.Name 'Name
            MsgBox shp.TopLeftCell.Offset(1).Address ' 1 Rows below checkbox
            ActiveSheet.Range(shp.ControlFormat.LinkedCell).Select ' Select linked cell.

            Set shp = Nothing
        End Sub

此处Application.Caller帮助VBA识别正在点击的复选框。