有条件的,我怎样才能使操作自动化?
Posted
技术标签:
【中文标题】有条件的,我怎样才能使操作自动化?【英文标题】:Conditional, How I can automate the operation? 【发布时间】:2020-06-07 09:47:26 【问题描述】:我需要我的代码可以评估几个单元格的值,并且我不需要为每个答案更改单元格
我希望这个过程是自动的
我尝试了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
【问题讨论】:
你尝试过什么样的For
?您的代码是否返回错误?如果是,什么错误以及在哪一行?如果没有,它是否会返回您需要的其他内容?
即使一切正常,您的 H5 也不会被接受...请在下面查看我的答案并修改您的代码
我有 3 个条件来获得信用:信用 1 2 3 好的 不可以 好的 不可以 好的 不可以 好的 好的 我想检查这 3 个条件以确定客户是否可以获得信用跨度>
可以吗?...我还想知道当我们将三个连续的条件放在 AND 或 OR 的组合中时,为什么 vba 不评估这些条件。所以,我更喜欢使用 worksheetfunction.or
在 H5 中:=IF(COUNITIF(E5:G5, "OK") = 3, "ACCEPT", "NOT ACCEPT")
【参考方案1】:
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
【讨论】:
谢谢,我怎样才能使其他行的代码自动化?我不想手动更改单元格“E5 F5 G5”下一行将是“E6 F6 G6” 请解释你的答案。 好的,所以你可能不需要 vba...一个简单的工作表公式可能就足够了 假设您在 H5 中输入此公式=IF(AND(UPPER(E5)="OK",UPPER(E5)="OK",UPPER(E5)="OK"),"Accept","Not Accept")
...然后...您可以将公式复制到所有行中以上是关于有条件的,我怎样才能使操作自动化?的主要内容,如果未能解决你的问题,请参考以下文章
升级篇(7.0) ❀ 02. 怎样才能将固件自动升级到7.0版本?