重新运行相同的宏,直到最后一行数据

问题描述 投票:0回答:2

我是初学者。只是通过谷歌学习,但找不到解决方案。请帮助。

我想运行下面的宏。我在同一列中有多个名为“ CV_ = CVCAL”的单元格。我想要的是宏,以找到值“ CV_ = CVCAL”的第一个单元格并偏移到相邻单元格。如果相邻的单元格具有特定的值,如果该值低于下面的值,则说“ 1.5”,我要填充它将是单元格样式“坏”的。

我希望宏遍历所有名称为CV_ = CVCAL的单元格,并执行相同的操作,直到不再有名为CV_ = CVCAL的单元格为止。

Sub If_CV()

Range("A1").Select

    Set FoundItem = Range("C1:C1000").Find("CV_=CVCAL")
    FoundItem.Offset(columnOffset:=1).Select

    If ActiveCell.Value >= 1.5 Then
    ActiveCell.Style = "Bad"

    End If


End Sub
excel vba loops
2个回答
0
投票

一个基本循环会更简单:

Sub If_CV()

    Dim c As Range
    For Each c in Range("C1:C1000").Cells
        If c.Value = "CV_=CVCAL" Then
            With c.offset(0, 1)
                If .Value >= 1.5 Then .Style = "Bad"
            End With
        End If
    Next c

End Sub

0
投票

听起来像您想要遍历您的值。

  1. 确定范围的终点
  2. 浏览您的范围并检查您的条件

Sub If_CV()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lr As Long, i As Long

lr = ws.Range("C" & ws.Rows.Count).End(xlUp).Row

For i = 2 To lr
    If ws.Range("C" & i) = "CV_=CVCAL" Then
        If ws.Range("D" & i) >= 1.5 Then
            ws.Range("D" & i) = "Bad"
        End If
    End If
Next i


End Sub
© www.soinside.com 2019 - 2024. All rights reserved.