检查单元格内容是否在另一个选项卡的列表中

时间:2018-02-12 12:15:34

标签: excel vba excel-vba

我看上去很高,我找不到任何适合我的东西。

我在选项卡上有一个值列表,我已经通过for循环。

循环在活动选项卡上找到当前值,在另一个选项卡中导出一些数据 - 这一切都正常。但是我试图在流程中添加一些验证 - 在循环中我想确保当前正在处理的值实际上是我正在玩的范围内的值。如果它是有效值,请执行业务并将单元格更改为绿色,否则,更改为红色并继续下一次迭代。

我知道在我的脑海中我想看看它但我找不到任何可以帮助我做到这一点。

伪代码是

for i=1 to lastRowInRange

    if activeCellValue is NOT a value in column N on tab "Data" then

        change cell colour red and do nothing else

    else

       do lots of exporty things

       change cell colour to green

next i

我尝试了交叉方法,但无法使其工作

非常感谢任何帮助!

麦克

1 个答案:

答案 0 :(得分:1)

我相信下面的代码可以帮助你做你期望的事情,这将在A列中查找值并在列N中搜索该值,如果找到则将该给定单元格的内部颜色设置为绿色(如果未找到)然后进行细胞红:

Sub test()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set your worksheet, amend as required
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'get the last row with data on Column A

For i = 1 To LastRow 'loop from row 1 to last
    Set FindValue = Worksheets("Data").Range("N:N").Find(What:=ws.Cells(i, "A"), lookat:=xlWhole)
    'above search for value from Column A in Column N of Sheet Data
    If FindValue Is Nothing Then 'if not found
        ws.Cells(i, "A").Interior.Color = 255 ' not found then make cell Red
    Else 'if found
        ws.Cells(i, "A").Interior.Color = 5287936 ' found then make cell Green
       'do lots of exporty things
    End If
    Set FindValue = Nothing
Next i
End Sub