我正在尝试运行一个代码,按下按钮,从另一个工作表中的列(“H”)中找到一个单元格(标记为“MFG PNs”),并将其值与在单元格中输入的内容匹配“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
答案 0 :(得分:0)
颜色索引是从1到56的值(见下文).RGB颜色值通常比这大一点。
您可以将.ColorIndex更改为.Color并输入适当的颜色,或将RGB(0,97,0)更改为特定的索引值。
VBA代码可用 here ,可在工作表上生成颜色索引和值。
答案 1 :(得分:0)
在测试代码时,我确实发现了另一个问题:当找不到目标字符串(“*”)时崩溃。以下更正应考虑到:
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