首页 > 解决方案 > 如何在 VBA if 语句中使用 And 函数和 Not 函数

问题描述

如果您不能理解这一点,我很抱歉,因为我很难解释我正在尝试做的事情,但是,基本上我正在尝试制作一个成本表,当您填写时它会根据你标记的内容列出一个列表,如果你不选择一些项目,那么其他项目将进入那个位置。有人能告诉我我哪里出错了吗?我试图让它看看一个单元格是否大于 0,如果另一个单元格不等于“BBQ”,那么我希望它说“BBQ”

If Range("'Cost Sheet'!D87", "'Cost Sheet'!D88") > 0 And Not Range("B97") = "     •     BBQ" Then
    Range("B98") = "     •     BBQ"

标签: vbaif-statement

解决方案


我不完全理解您的问题,但我有一些建议可以帮助您或其他人获得完整的答案。此外,如果您可以提供一些示例数据并澄清我们是否正在处理多张会有所帮助的工作表。

首先,我假设这段代码会在一定范围内读取不同的值?如果是这样,我会将正在查找的单元格范围转换为 Cells()。这将使在一定范围内执行任务变得容易得多:

Sheets("Cost Sheet").Cells()

其次,为此使用循环可能会更好。它看起来类似于以下内容的修改版本:

Lastrow = Sheets("Cost Sheet").Range("D" & Rows.count).end(xlup).row
For i = 1 to Lastrow
   If Sheets("Cost Sheet").Cells(i,4).value > 0 AND <> Sheets("Cost Sheet").Cells(i,4).value<> "BBQ" Then
      Cells().Value = "BBQ"
   End if
Next i

希望这有帮助,祝你好运。


推荐阅读