Excel VBA 不激活单元格的偏移量
Excel VBA offset without activating the cell
我正在尝试更改单元格的颜色。我有代码可以停止激活黑色背景的单元格。这很好用,但是我想在按钮单击事件中将其中一些单元格的背景更改为红色。
单击按钮时,我希望它周围的所有单元格都变成红色。由于无法 select 单元格,我无法执行此操作。如果我使用类似 Range("A1").Value = "Hi" 的东西(这是一个黑色背景的单元格),Hi 会出现在那里,我认为这是因为我还没有激活单元格更改了它的值。
有没有办法在没有 activating/selecting 那些单元格的情况下从活动单元格偏移并更改其周围单元格的颜色?
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
您不必 select 一个单元格来更改它的属性,实际上这被认为是不好的做法,并且充满了许多意想不到的后果。
相反,您可以这样做:
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Interior.ColorIndex = 3
并专注于您所在的牢房。
我正在尝试更改单元格的颜色。我有代码可以停止激活黑色背景的单元格。这很好用,但是我想在按钮单击事件中将其中一些单元格的背景更改为红色。
单击按钮时,我希望它周围的所有单元格都变成红色。由于无法 select 单元格,我无法执行此操作。如果我使用类似 Range("A1").Value = "Hi" 的东西(这是一个黑色背景的单元格),Hi 会出现在那里,我认为这是因为我还没有激活单元格更改了它的值。
有没有办法在没有 activating/selecting 那些单元格的情况下从活动单元格偏移并更改其周围单元格的颜色?
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
您不必 select 一个单元格来更改它的属性,实际上这被认为是不好的做法,并且充满了许多意想不到的后果。
相反,您可以这样做:
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Interior.ColorIndex = 3
并专注于您所在的牢房。