如果背景颜色为黑色,excel会停止用户访问单元格

Posted

技术标签:

【中文标题】如果背景颜色为黑色,excel会停止用户访问单元格【英文标题】:excel stop a user accessing a cell if background colour is black 【发布时间】:2015-05-16 02:03:26 【问题描述】:

我正在尝试在 excel 2003 中构建一个简单的游戏(迷宫)。我需要一个宏来阻止用户选择具有黑色背景颜色的单元格(使用箭头键)。

我似乎无法阻止这种情况发生(无论颜色如何)。

任何提示或帮助都会很棒。

谢谢。

汤姆

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 中,我在最顶部添加了: 选项显式 私有 OldRange 作为范围

然后我将以下内容添加到我的 Private Sub Worksheet_SelectionChange(ByVal Target As Range) 区域:

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

我仍然在 OldRange.Select 行上遇到调试错误。

更新 我慢了!对不起! 非常感谢现在工作。

谢谢。

汤姆

【问题讨论】:

您可以查看 worksheet_SelectionChange 事件 这行不通,因为OldRange 将在此子目录中为Nothing。您必须在工作表代码中将其声明为私有成员,即在子外部。 【参考方案1】:

这里有一个解决方案(在工作表代码块中输入此代码):

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

【讨论】:

我已经添加了您提供的代码:在下面 - 它目前给出了一个调试错误: 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 您必须在 Worksheet 代码中声明 OldRange,而不是事件处理程序!

以上是关于如果背景颜色为黑色,excel会停止用户访问单元格的主要内容,如果未能解决你的问题,请参考以下文章

在pandas read_excel中获取Excel单元格背景颜色?

excel按背景颜色显示数据多少

在excel中怎么快速批量删除单元格背景颜色为红色的数据?

excel鼠标点击单元格,单元格黑色框框没有

基于背景颜色的Excel公式单元格

POI 使用XSSF导出Excel自定义单元格颜色为啥始终是黑色的?代码如下