我一直在寻找通用代码并进行修改,但我无法解决问题。
我有一个包含很多行的工作文件。每行应该只有一个颜色填充(RGB 0,204,0)
。我想知道是否可以自动循环(不使用操作按钮)到我的文档中,并通过MsgBox突出显示行,其中我有相同的颜色。
谢谢!
答案 0 :(得分:0)
我录制了一个宏来查看 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
宏来运行此代码。
只要问题不够明确,这里有另一种可能的解决方案:
如果您要查找@ {em> 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
答案 1 :(得分:0)
非常感谢@Mertinc
我的范围是(C27:G48)
然而,我想知道是否可以完成以下操作:当循环要找到特定颜色(0,204,0)时,它将查看单元格的文本:即EXCELLENT(80)并复制/粘贴将数值输入col H.我的数字从0开始; 5; 20; 40; 60; 80; 100.
如果循环找到两个颜色为(0,204,0)的单元格,则B列需要着色(0,0,255)
Finnaly,如果特定文本中的结果为0,则相关的col H需要着色为(255,0,0)。