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