在 VBA 中组合 If-Then 语句和循环

在 VBA 中组合 If-Then 语句和循环

如果 F 列为 =“CRDI”

如果 R 列中的任何数据为“0”

然后 S 列和 T 列也需要为“0”

...但有时这些列具有非零值。如果满足其他两个条件,则只需要提出宏来摆脱非零值。

请帮忙....

我走的路完全正确吗???

Worksheets("EDW_Caxton_Rat_Extract_File_201").Select
Range("A1048576").Select
Selection.End(xlUp).Select

LastRow = ActiveCell.Row - 1

For x = 0 To LastRow

    If Range("F2").Offset(x, 0).Value = "CRDI" And Range("R2").Offset(x, 0) = 0 _
        And Range("T2").Offset(x, 0) <> 0 Then
            Range("T2").Offset(x, 0) = 0
            x = x - 1
    Next x
End If

答案1

这实现了您在评论中描述的内容:

  • 筛选第 6 列 (F) 上的“CRDI”
  • 筛选第 18 列 (R) 上的“0”
  • 将 S 列和 T 列中的(可见)值设置为“0”(不包括标题行)

Option Explicit

Public Sub setZeroes()
    Application.ScreenUpdating = False
    With ActiveSheet.UsedRange
        .AutoFilter
        .AutoFilter Field:=6, Criteria1:="CRDI"
        .AutoFilter Field:=18, Criteria1:="0"

        .Range("S" & .Row + 1 & ":T" & .Rows.Count).Value2 = 0
        .AutoFilter
    End With
    Application.ScreenUpdating = True
End Sub

之前和之后

相关内容