Excel - 如果行包含特定值

时间:2018-04-20 02:04:33

标签: excel excel-vba vba

我看过一些类似的问题但是找不到我的情况的答案。如果在一行中找到数据,那么该行的C列将标记该数据。但我还希望此行下面的所有列都包含C列中的相同标签。在找到下一个数据之前,我想对整个文档重复相同的过程,直到每一行都有C列中的数据反映其中的数据特别节。

我可能很难解释这一点,所以这就是我想要发生的事情。任何帮助将不胜感激。

[我想要结果的例子。]

2 个答案:

答案 0 :(得分:1)

这只是IF公式非常简单。 这是伪代码:

if the sentence start with "class" then 
  refer to cell next to him
else:
  refer to cell on top of him

Formula view

答案 1 :(得分:0)

在代码中看起来像:

Sub test()
    Dim rng As Range
    With ActiveSheet
        For Each rng In Intersect(.Columns("C"), .UsedRange)
            If Left$(Trim(rng.Offset(, 1)), 5) = "Class" Then
                rng = rng.Offset(, 1)
            Else
                rng = rng.Offset(-1)
            End If
        Next rng
    End With
End Sub

如果您要使用列D来确定要循环到的最后一行,则可以使用以下内容(如果要使用不同的列来确定要循环的距离,请将“D”换成不同的列字母到最后一行)

Option Explicit

Sub test()
    Dim rng As Range
    With ActiveSheet
        For Each rng In .Range(.Cells(1, "C"), .Cells(.Cells(.Rows.Count, "D").End(xlUp).row, "C"))
            If Left$(Trim(rng.Offset(, 1)), 5) = "Class" Then
                rng = rng.Offset(, 1)
            Else
                rng = rng.Offset(-1)
            End If
        Next rng
    End With
End Sub