2015-03-13 63 views
1

我想在Excel 2003中构建一个简单的游戏(迷宫)。我需要一个宏,停止用户选择单元格(使用箭头键),如果他们有黑色的背景颜色。excel停止访问单元格,如果背景颜色为黑色

我似乎无法找到停止这种情况发生(无论颜色)。

任何提示或帮助将是伟大的。

谢谢。

汤姆

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

Dim x As Integer 
Dim y As String 
Dim z As Integer 
Dim answer As Integer 
Dim OldRange As Range 



x = Range("AL4").Value 
y = Range("AL5").Value 
z = Range("AL6").Value 
accessory = Range("AL7").Value 

'ColorIndex 1 is Black 
If Target.Cells(1, 1).Interior.ColorIndex = 1 Then 
    OldRange.Select 
Else 
    Set OldRange = Target 
End If 

我已经试过这样:我很困惑,我要去的地方错了! 放在ThisWorkbook我在最高层已添加: Explicit选项 私人OldRange作为范围

我已经加入以下到我的私人小组Worksheet_SelectionChange(BYVAL目标作为范围)面积:

If Target.Cells(1, 1).Interior.ColorIndex = 1 Then 
    OldRange.Select 
Else 
    Set OldRange = Target 
End If 

OldRange.Select行仍然出现Debug错误。

UPDATE 我正在慢!抱歉! 现在非常感谢。

谢谢。

汤姆

+1

你可以看着worksheet_SelectionChange事件 – Dave 2015-03-13 14:40:32

+0

这是行不通的,因为'OldRange'将是'没有什么'这个子里面。您必须在工作表代码中将其声明为私有成员,即在子之外。 – Taosique 2015-03-13 15:19:40

回答

0

这里是你的解决方案(请在工作表中的代码块的代码):

Private OldRange As Range 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    'ColorIndex 1 is Black 
    If Target.Cells(1, 1).Interior.ColorIndex = 1 Then 
     OldRange.Select 
    Else 
     Set OldRange = Target 
    End If 
End Sub 
+0

我已经加入您所提供的代码:以下 - 这是目前给调试错误:
私人小组Worksheet_SelectionChange(BYVAL目标作为范围) 昏暗X作为整数 昏暗Ÿ作为字符串 暗淡将z作为整数 昏暗答案作为整数 昏暗OldRange作为范围 X =范围( “AL4”)。值 Y =范围( “AL5”)。值 Z =范围( “AL6”)。值 附件=范围(“AL7”)值 'ColorIndex 1是黑色 如果Target.Cells(1,1).Interior.ColorI ndex = 1 Then OldRange.Select Else Set OldRange = Target End If – Tom36 2015-03-13 15:09:28

+0

您必须在工作表代码中声明OldRange,而不是事件处理程序! – Taosique 2015-03-13 15:13:20

相关问题