首页 文章

Excel VBA偏移而不激活单元格

提问于
浏览
-1

我试图改变细胞的颜色 . 我有一些代码可以阻止激活黑色背景的单元格 . 这很好用但我想在按钮点击事件中将其中一些单元格的背景更改为红色 .

单击按钮时,我希望它周围的所有单元格变为红色 . 由于无法选择细胞,我无法做到这一点 . 如果我使用Range(“A1”)之类的东西 . 值=“Hi”(这是一个黑色背景的单元格),Hi会出现在那里,我想这是因为我没有激活单元格只是改变了它的值 .

有没有办法从活动单元格偏移并更改其周围的单元格颜色而不激活/选择这些单元格?

Worksheet_SelectionChange中的代码是:

'Stops users selecting a Black cell. If they try they are returned to     their previous cell

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

Button Click中的代码是:

If Range("AL7").Value = "Bomb" Then 
 MsgBox "BOOM, BANG, KABOOM!!" 
ActiveCell.Interior.ColorIndex = 3 

ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Select 
ActiveCell.Interior.ColorIndex = 3 

ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate 
ActiveCell.Interior.ColorIndex = 3 

ActiveCell.Offset(rowOffset:=0, columnOffset:=-1).Activate 
ActiveCell.Interior.ColorIndex = 3 

ActiveCell.Offset(rowOffset:=0, columnOffset:=-1).Activate 
ActiveCell.Interior.ColorIndex = 3

1 回答

  • 0

    您不必选择单元格来更改它的属性,实际上这被认为是不好的做法,并且充满了许多人意想不到的后果 .

    相反,你可以做这样的事情:

    ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Interior.ColorIndex = 3
    

    并把重点放在你所在的牢房里 .

相关问题