【发布时间】:2019-03-07 00:08:08
【问题描述】:
我在一张纸上有 70 个复选框。
我想要每个复选框 - 当单击以填充该复选框周围的矩形时。 如果未单击复选框 - 矩形将不会被填充。
我的问题是我尝试将此代码应用于每个复选框 - 但我收到编译错误:“compile error ambiguous name detected boxcheck”
如何防止编译错误? 注意:每个复选框都有自己的唯一名称 (1-70),每个矩形都有自己的唯一名称 (1-70)。这样每个 Checkbox 应该只填充 VBA IF/THEN 代码引用的 Rectangle。我不希望 1 Checkbox 填充所有矩形。
这是我的代码:
Sub BoxCheck()
If ActiveSheet.Shapes("Check Box 1").ControlFormat.Value = 1 Then
ActiveSheet.Shapes("Rectangle 1").Fill.ForeColor.SchemeColor = 3
End If
If ActiveSheet.Shapes("Check Box 1").ControlFormat.Value = -4146 Then
ActiveSheet.Shapes("Rectangle 1").Fill.ForeColor.SchemeColor = 1
End If
End Sub
【问题讨论】:
-
您是否检查了完整的代码,看看您是否在某处有任何重复的复选框名称?
-
不可能是全部。如果
BoxCheck不明确,那么它在(至少)两个地方被声明;删除除一个以外的所有内容。
标签: excel vba if-statement checkbox