视情况而定,如何使操作自动化?

问题描述 投票:-1回答:1

我需要我的代码可以评估几个单元格的值,并且不需要为每个答案更改单元格

我希望此过程将是自动的

我尝试使用,但是不起作用

Sub Test()
If Range("E5").Value <> "OK" Or Range("F5").Value <> "OK" Or Range("G5").Value <> "OK" Then
    Range("h5").Value = "NOT ACEPT"
ElseIf Range("E5").Value = "NOT OK" And Range("F5").Value = "NOT OK" And Range("G5").Value = "NOT OK" Then
    Range("H5").Value = "ACEPT"
End If
End Sub
excel vba for-loop conditional-statements each
1个回答
0
投票
Sub test()

If WorksheetFunction.Or(UCase(Range("E5")) <> "OK", UCase(Range("F5")) <> "OK", UCase(Range("G5")) <> "OK") Then
Range("h5").Value = "NOT ACCEPT"
Else
Range("H5").Value = "ACCEPT"
End If
End Sub

如果您只想使H5单元格为“接受”或“不接受”,则不需要vba,您可以使用公式进行操作并将其复制到H列中的最后一个单元格。>

IF(AND(UPPER(E5)=“ OK”,UPPER(E5)=“ OK”,UPPER(E5)=“ OK”),“接受”,“不接受”]

如果需要vba,则修改上面的代码以满足您在H列中多行的要求

Sub test()
Dim lastrow, cell As Range

lastrow = Cells(1048576, 7).End(xlUp).Row

' not fill the formula from H5 to the last row

For Each cell In Range("H5:H" & lastrow)
    If WorksheetFunction.Or(UCase(cell.Offset(0, -3)) <> "OK", UCase(cell.Offset(0, -2)) <> "OK", UCase(cell.Offset(0, -1)) <> "OK") Then
    cell = "NOT ACCEPT"
    Else
    cell = "ACCEPT"
    End If

Next
End Sub

enter image description here

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