vba - 如何在 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"
解决方案
我不完全理解您的问题,但我有一些建议可以帮助您或其他人获得完整的答案。此外,如果您可以提供一些示例数据并澄清我们是否正在处理多张会有所帮助的工作表。
首先,我假设这段代码会在一定范围内读取不同的值?如果是这样,我会将正在查找的单元格范围转换为 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
希望这有帮助,祝你好运。
推荐阅读
- c - 绘制连接 2 个点的像素
- unity3d - 了解 Unity 3D 的 aws-sdk-net
- sql - 高效的多重分组
- c# - 用于将 JSON 数组映射到 C#/ASP .Net Core 中的 DTO 的最佳数据类型
- reactjs - 我应该把通用代码放在 Redux 哪里?
- python - 将 Pandas 代码更改为 CUDF 以提高 GPU 利用率
- swift - 如何在 Swift 中创建像 AnyHashable 这样的类型?
- unity3d - AudioSource 附加按钮在另一个场景中不起作用
- c++ - 使用 std::vector 是好是坏(性能方面)
- android - 如何使用 ADB 获取主屏幕中所有应用程序的列表