Vba 运行时错误13-与true比较

Vba 运行时错误13-与true比较,vba,Vba,只需编写以下代码行: If Cells(L, i).Value = True 然后我收到以下错误消息: Run Time Error 13. Type mismatch. 有人能告诉我为什么我会收到这个错误信息吗 此列L有空单元格或一些公式,如: =IF(OR($O11="";$CJ11=0;AH$6<$CJ11);"";IF($CJ11=AH$6;TRUE;IF($O11="S";TRUE;IF(OR(AND(RIGHT($O11;1)="M";$O11<>"M");R

只需编写以下代码行:

If Cells(L, i).Value = True
然后我收到以下错误消息:

Run Time Error 13. Type mismatch. 
有人能告诉我为什么我会收到这个错误信息吗

此列L有空单元格或一些公式,如:

=IF(OR($O11="";$CJ11=0;AH$6<$CJ11);"";IF($CJ11=AH$6;TRUE;IF($O11="S";TRUE;IF(OR(AND(RIGHT($O11;1)="M";$O11<>"M");RIGHT($O11;1)="S");IF(MOD(AH$6-$CJ11;LEFT($O11;LEN($O11)-1)*IF(RIGHT($O11;1)="M";4;1))=0;TRUE;FALSE);IF($O11="M";IF(MOD(AH$6-$CJ11;4)=0;TRUE;FALSE);IF(RIGHT($O11;1)<>"A";MOD(AH$6-$CJ11;$O11)=0;FALSE))))))
=IF(或($O11=”“;$CJ11=0;AH$6两个可能的原因(我知道)为什么这里可能发生
类型不匹配
错误

  • L
    i
    不是自然数。修复:确保参数是自然数。(例如,如果
    L
    是一个范围,请使用
    L.Row
  • 单元格包含错误。修复(如果无法删除错误):

    由于VBA没有延迟计算,因此有必要将测试拆分


  • 找不到错误的原因可能是您查看了错误的单元格。在问题中,您写了“L列”,但您引用的单元格位于L行和i列中。

    您想与单元格的值比较什么?您想与字符串比较吗
    “True”
    ?这里,您的
    True
    是一个布尔值type@MincongHuang有趣的是,表达式的计算结果为
    True
    ,即使单元格内容是字符串
    True
    ='True
    )。我不知道不同语言版本会发生什么。啊,你是对的。@arcadeprecinct不确定这是否会导致错误,但是
    单元格的第一个参数是行,而不是列。L是数字,L=9i=24,两者都是整数,正如我看到的,这个单元格是空的,两者都是整数,我看到的这个单元格是空的@JimmyJimm那很奇怪,我无法重现你的问题。你能找到一个导致错误的单元格内容的简单示例吗?就像其他人可以使用的公式一样。你在问题中的公式很难阅读,其他人无法计算。@JimmyJimm我能够创建一个
    类型不匹配
    ,也许你引用了t他选错了单元格。请看我的编辑。检查我的主要帖子-我将公式粘贴到其中cell@JimmyJimm是的,但是这个公式仍然非常复杂。为什么不
    =IF(TRUE;“”;“Somethingelse”)
    ?应该有相同的结果。但是它仍然没有给我一个错误(你的公式也没有).你检查过我提到的列/行吗?
    If Not IsError(Cells(L, i).Value) Then
        If Cells(L, i).Value = True Then 'you could also omit the "= True"
            'do stuff
        End If
    End If