你们可以帮我吗?我目前正在MS EXCEL中制作一个迷宫游戏,我已经将按钮设置为“上”,“下”,“左”,“右”,并给了它一个偏移命令(位于模块中),我想禁用特定的按钮当单元格被墙拐角时(不能向左或向右移动)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim b1, b2, b3, b4 As Button
Set b1 = ActiveSheet.Buttons("Up").up_Click
Set b2 = ActiveSheet.Buttons("Down").down_click
Set b3 = ActiveSheet.Buttons("Left").left_click
Set b4 = ActiveSheet.Buttons("Right").right_click
If Selection.Count = 1 Then
If Not Intersect(Target, Range("AF9")) Is Nothing Then
b1.Enabled = False
b2.Enabled = True
b3.Enabled = False
b4.Enabled = False
End If
End If
End Sub
我尝试了此代码(位于工作表中;不在模块中),以便禁用按钮,但我收到一条错误消息,提示“运行时错误'1004':无法正确获取Worksheet类的Buttons ”,然后突出显示代码“设置b1 = ActiveSheet.Buttons(“ Up”)。up_Click”。我不知道代码中要更改什么。请帮助。 (如果您想提出其他方法来制作墙壁,请随意:D)
答案 0 :(得分:0)
工作表没有.Buttons()
集合,按钮没有up_Click
事件处理程序。
听起来好像您正在使用实际的按钮控件(而不是使用看起来像按钮的单元格一样)。您可以启用和禁用ActiveX按钮控件,但不能启用和禁用表单按钮控件。它们是有区别的。如果在工作表上使用“表单按钮控件”,则需要用ActiveX按钮控件替换它们。如果将按钮命名为“ CommandButton_up”,“ CommandButton_down”,“ CommandButton_right”和“ CommandButton_left”,则可以在Worksheet_SelectionChange
中将其禁用,如下所示:
CommandButton_up.Enabled = False
CommandButton_down.Enabled = False
CommandButton_right.Enabled = False
CommandButton_left.Enabled = False
您当然需要更多有关何时以及如何禁用它们的逻辑,但这是您与工作表上的ActiveX控件进行交互的方式。