在vba中的列表中标识文本变量

时间:2018-06-12 14:42:31

标签: excel vba list select

我几周来一直在努力创建一个循环遍历文本行的宏,并通过底层组件识别可变文本短语以对产品进行排序。该文本短语将位于页面的不同位置或与多个其他变量链接。例如,列表中有多少产品包含“皮革”,并在列表旁边的答案行中标识具有定义的短语,如“绝对”。我一直在使用的代码如下:

Sub Find()
Dim Sheet As Worksheet
Dim rng As Range
Dim row As Range
Dim cell As Range

Set Sheet = ActiveSheet
Set rng = Sheet.Range("E2:J7")

For Each row In rng.Rows
 For Each cell In row.Cells
   Select Case cell.Value
    Case "Oil"
    Case "Leather"
      Cells(row.row, 11).Value = "Absolutely"
    Case "Absolutely"
    Case "Nope"
    Case Else
      Cells(row.row, 11).Value = "Nope"
   End Select
  Next cell
 Next row

End Sub

表格看起来如下:

Table associated with code above

目前,代码运行正确的行并查看所有组件但无法识别答案行中的答案。我正在使用此代码来确定许多产品列表中的许多可变组件,而“皮革”和“油”目前只是占位符。希望这将有助于我和许多其他人避免阅读长长的数据列表,并单独标记每个项目是否符合某个定义的标准。

1 个答案:

答案 0 :(得分:0)

这必须是VBA吗?您可以使用COUNTIF function轻松完成此操作。使用您提供的样本数据,在单元格D10中使用此公式并复制:

=IF(C10="","",IF(COUNTIF($2:$7,C10)>0,"Absolutely","Nope"))