我一直在寻找通用代码并进行修改,但我无法解决我的问题。
我有一个包含许多行的工作文件。每行应该只有一个颜色填充(RGB 0,204,0)
。我想知道是否可以自动循环(不使用操作按钮)到我的文档中,并通过 MsgBox 突出显示我具有相同颜色的行。
谢谢!
我录制了一个宏以查看RGB(0,204,0)的代码是什么,我发现它是52224。
现在我假设您的工作表名称是Sheet1
并且您的特定范围的名称是MySpecificRange
Option Explicit
Sub ChangeTheColorofSpecificRange()
Dim wb As Workbook
Dim ws As Worksheet
Dim MyRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set MyRange = Range("MySpecificRange")
If MyRange.Interior.Color <> 52224 Then
MsgBox "Your SpecificRange doesn't have your desired background color so I'm going to do it!"
MyRange.Interior.Color = 52224
End If
End Sub
在模块中编写此代码后,可以通过单击 F5 或转到Developer
选项卡、Macros
部分并Run
宏来运行此代码。
只要问题不够清楚,这里有一些其他可能的解决方案:
如果您正在寻找@Romcel Geluz询问Worksheet_Change()
事件,请将以下代码复制到您的Worksheet
对象页面中。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wb As Workbook
Dim ws As Worksheet
Dim MyRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set MyRange = Range("MySpecificRange")
If MyRange.Interior.Color <> 52224 Then
MsgBox "Your SpecificRange doesn't have your desired background color so I'm going to do it!"
MyRange.Interior.Color = 52224
End If
End Sub
在此示例中,无论您在工作表中执行/键入/更改什么,如果您的 SpecificRange 不是您想要的颜色,它都会随之更改它。(并用花哨的MsgBox通知您!
或者,如果您希望某些代码在工作簿的开头更改 SpecificRange 的背景颜色,则在打开工作簿时,请将以下代码复制到ThisWorkbook
工作表中。
Option Explicit
Private Sub Workbook_Open()
Dim wb As Workbook
Dim ws As Worksheet
Dim MyRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set MyRange = Range("MySpecificRange")
If MyRange.Interior.Color <> 52224 Then
MsgBox "Your SpecificRange doesn't have your desired background color so I'm going to do it!"
MyRange.Interior.Color = 52224
End If
End Sub
非常感谢@Mertinc
我的范围是 (C27:G48)
但是,我想知道是否可以执行以下操作:当循环要找到特定颜色 (0,204,0) 时,它将查看单元格的文本:即优秀 (80) 并将数值复制/粘贴到 col H 中。我的数字从 0 开始;5;20 ;40 ;60 ;80 ;100.
如果循环找到两个颜色为 (0,204,0) 的单元格,则需要对 B 列进行着色 (0,0,255)
当然,如果特定文本中的结果为 0,则需要将 col H 相关着色为 (255,0,0)。