VBA检查单元格是否包含列表中的任何内容

时间:2018-06-28 13:13:33

标签: excel-vba vba excel

我正在尝试在Excel中使用迷你日历功能,我需要一种方法来根据用户所在位置在特定日期自动输入背景色。

我这里有一些适用于个人标准的东西:

Sub Autofilldays()

'First column to check is located in cell B79
'Value to check for is located in cell H28
  For i = ActiveSheet.Columns.Count To Range("B79") Step -1
        If InStr(1, Cells(6, i), Range("H28")) Then Columns(i).Rows("7:19").Interior.Color = rgb(201, 201, 201)

Next i
End Sub

它拉出第一列以从单元格B79开始搜索(第一列取决于用户在其他地方输入的内容),如果它与单元格H28的内容匹配,则会在同一列中为第7至19行着色。

这很好用,但我还需要执行相同操作但需要更大范围的条件的东西,因此,例如,如果搜索到的单元格包含单元格H28:H50中保留的任何内容,则可以像以前一样对相同的行进行着色。

如果可能的话,我无法解决自己的生活,如果可能,我想知道它希望看到的语法是什么。不幸的是,它并不像更改

那样简单
 If InStr(1, Cells(6, i), Range("H28"))

 If InStr(1, Cells(6, i), Range("H28:H50"))

我希望是这样!

在这个范围内,我可能会有100个不同的可能标准,因此使用大量OR并不可行。如果有人知道我应该寻找什么,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用循环遍历该范围的值并分别测试每个

Dim Criteria As Variant
For Each Criteria In Range("H28:H50").Value
    If InStr(1, Cells(6, i), Criteria)
        'your code
    End If
Next Criteria