繁体   English   中英

根据另一个单元格的值更改单元格颜色

[英]Change cell color based on value of another cell

我正在尝试运行一个代码,按下按钮后,从另一张工作表(标记为“ MFG PNs”)的列(“ H”)中找到一个单元格,并将其值与我的单元格“ Z21”中输入的值相匹配标有“ SPC”的表格。 一旦找到H中的单元格,我试图将同一行的Q列中的相应单元格更改为不同的颜色。

我当前收到此错误消息:“运行时错误9,下标超出范围”它发生在代码的颜色更改部分。

Sub Approve_Click()

   Dim r As Long
    Dim m As Long
    m = Sheets("MFG PNs").Range("H3:H1200").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    For r = 1 To m
        If Sheets("MFG PNs").Range("H" & r) = Sheets("SPC").Range("Z21") Then
            Sheets("MFG PNs").Range("Q" & r).Interior.ColorIndex = RGB(0, 97, 0)
        End If
    Next r

End Sub

颜色索引是从1到56的值(请参见下文),RGB颜色值通常比此值大很多。

您可以将.ColorIndex更改为.Color并输入适当的颜色,也可以将RGB(0,97,0)更改为特定的索引值。

此处提供 VBA代码,可工作表上生成颜色索引和值。

颜色指数

在测试您的代码时,我确实发现了另一个问题:当找不到目标字符串(“ *”)时崩溃。 以下更正应说明这一点:

    Set cell = Sheets("MFG PNs").Range("H3:H1200").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)

    If (Not cell Is Nothing) Then
       For r = 1 To cell.Row
        'YOUR CODE
       Next r
    End If

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM