VBA查找重复,然后评估另一个单元格值

时间:2016-10-07 18:03:01

标签: vba excel-vba excel

我最初在下面问了一个问题。

基本上我希望VBA看L列L:L。如果cell = program,并且下面的单元格不等于lathe,我希望删除上面的行。如果单元格不相等则程序继续查找直到数据结束。

意识到我需要查看不同的数据,因为我正在丢失我需要留下的行。

  

新逻辑,我认为仍然会使用一些旧程序,但是   它需要使用另一列进行排序。我需要VBA来看看   E栏:E。如果下面一行中的单元格是单元格的副本   在上面,然后查看该行中的列L以查看该单元格是否显示   程序。如果是这样,下面的单元应该是车床。如果没有车床删除   程序行,如果是车床则留下两行。如果列E中的单元格   不重复,继续寻找。 EX。如果E5=E6,如果不继续   看着。如果是,请查看L5以查看是否说“程序”。如果是这样看看L6   用于车床。如果没有删除ROW5。

这是我收到的回答第一个问题我认为仍然会被使用

Dim rngCheck as Range
Dim rngCell as Range

Set rngCheck = Range("L1", "L" & Rows.Count - 1)

For each rngCell in rngCheck
    If rngCell.value = "Program" And rngCell.offset(1,0).value <> "lathe" then
        rngCell.offset(-1,0).EntireRow.Delete
    End if
Next rngCell

2 个答案:

答案 0 :(得分:0)

这应该这样做

bind_rows(df1 = df1, df2 = df2, df3 = df3, .id = "whichDF")

答案 1 :(得分:0)

删除时最好从最后一次迭代到第一次。如果阻止你跳过行。

Sub RemoveRows()
    Dim x As Long

    With Worksheets("Sheet1")

        For x = .Range("E" & .Rows.Count).End(xlUp).Row To 2 Step -1
            If .Cells(x, "E").Value = .Cells(x - 1, "E").Value And Cells(x - 1, "L").Value = "Program" Then
                .Rows(x).Delete
            End If
        Next

    End With

End Sub