有条件的,我怎样才能使操作自动化?

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") ...然后...您可以将公式复制到所有行中

以上是关于有条件的,我怎样才能使操作自动化?的主要内容,如果未能解决你的问题,请参考以下文章

怎样才能使excel里面字体颜色随系统时间的变而变化

我怎样才能使一个字段只在某些条件下是必需的?

升级篇(7.0) ❀ 02. 怎样才能将固件自动升级到7.0版本?

在 UIViewController 我怎样才能有一个方法自动处理很多按钮

自动布局和约束不使按钮大小相同(尽管有大小限制)

我怎样才能让 QtCreator 打破异常?