【问题标题】:Why am I getting a VBA Typer Mismatch Error?为什么我会收到 VBA 类型不匹配错误?
【发布时间】:2022-06-29 23:29:19
【问题描述】:

尝试在我的 VBA 代码中为数据透视表创建条件语句,以将 C 列中小于 2 的任何值突出显示为红色。

 Set result = Range("C:C").Value
             If result < 2 Then
                  MyRange.Font.ColorIndex = 3
             End If

不知道为什么会出现类型不匹配错误。

【问题讨论】:

  • Set 用于将对象保存在变量中。你正在做Set var = .Value,所以它正在寻找一个对象,而是找到一个 Variant 值。删除Set
  • 您不能将数组与整数进行比较。您也不应该将Set 与非对象一起使用。
  • 要检查每个单元格的值,您需要遍历 C 列。您不能只执行result &lt; 2。您还可以使用条件格式,它会为您完成工作,并且会在值发生变化时自动更新。
  • 那么有什么更好的写法呢?
  • 条件格式?

标签: excel vba pivot-table


【解决方案1】:

我喜欢条件格式选项。

否则这样的事情可能会很好用:

Dim rng as range
for each rng in Range("C1:C" & Range("C" & Rows.Count).End(xlup).row)
    If rng.value < 2 Then
        rng.Font.ColorIndex = 3
    End If
next rng

我没有检查颜色的实际应用

这应该让你更接近一点

【讨论】:

    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2013-04-22
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多