Excel 有条件的,我如何能自动化操作?

Excel 有条件的,我如何能自动化操作?,excel,vba,for-loop,conditional-statements,each,Excel,Vba,For Loop,Conditional Statements,Each,我需要我的代码可以计算几个单元格的值,而不需要为每个答案更改单元格 我希望这个过程是自动的 我试着用for,但不起作用 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 O

我需要我的代码可以计算几个单元格的值,而不需要为每个答案更改单元格

我希望这个过程是自动的

我试着用for,但不起作用

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
子测试()
如果范围(“E5”).值“正常”或范围(“F5”).值“正常”或范围(“G5”).值“正常”,则
范围(“h5”).Value=“非ACEPT”
ElseIf范围(“E5”).Value=“不正常”和范围(“F5”).Value=“不正常”和范围(“G5”).Value=“不正常”然后
范围(“H5”).Value=“ACEPT”
如果结束
端接头
子测试()
如果工作表功能或(UCase(范围(“E5”))“正常”、UCase(范围(“F5”))“正常”、UCase(范围(“G5”))“正常”),则
范围(“h5”).Value=“不接受”
其他的
范围(“H5”).Value=“接受”
如果结束
端接头
如果您只想使单元格H5“接受”或“不接受”,则不需要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
如果(和(上(E5)=“正常”,上(E5)=“正常”,上(E5)=“正常”,“接受”,“不接受”)

如果需要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
子测试()
最后一行变暗,单元格作为范围
lastrow=单元格(1048576,7).结束(xlUp).行
'不填写从H5到最后一行的公式
对于范围内的每个单元格(“H5:H”和lastrow)
如果工作表函数或(UCase(单元格偏移量(0,-3))为“OK”,UCase(单元格偏移量(0,-2))为“OK”,UCase(单元格偏移量(0,-1))为“OK”),则
cell=“不接受”
其他的
cell=“接受”
如果结束
下一个
端接头

您尝试过什么类型的
?您的代码是否返回错误?如果是,错误是什么?在哪一行?如果没有,它是否返回其他东西,然后你需要什么?即使一切正常,你的H5将不接受。。。请检查我下面的答案并修改您的代码我有3个条件来获得信用:信用1 2 3 Ok Not Ok Not Ok Not Ok Ok Ok Ok Ok我想检查这3个条件来确定客户是否可以获得信用,Ok吗?。。。我还想知道,当我们把三个连续的条件放在一起时,如果将AND或or组合在一起,为什么vba不评估这些条件。因此,我更喜欢在H5中使用worksheetfunction.orin:
=IF(conitif(E5:G5,“OK”)=3,“ACCEPT”,“NOT ACCEPT”)
谢谢,我如何为其他行自动执行此代码?我不想手动更改单元格“E5 F5 G5”下一行将是“E6 F6 G6”请解释您的答案。好的,因此您可能不需要vba。。。一个简单的工作表公式可能足够了,假设您在H5中输入此公式
=如果(和(上限(E5)=“OK”,上限(E5)=“OK”,上限(E5)=“OK”),“接受”,“不接受”)
。。。然后。。。你可以在所有的行上复制这个公式