Excel 检查单元格值时类型不匹配
我有这个密码 错误13:类型不匹配 每当我在C59中输入或更改值时,C59都包含以下公式Excel 检查单元格值时类型不匹配,excel,vba,Excel,Vba,我有这个密码 错误13:类型不匹配 每当我在C59中输入或更改值时,C59都包含以下公式=ROUNDUP(D59/C57,0)。我猜是因为变量不同,但不知道如何解决它,非常感谢您的帮助 If Range("C59").Value = "0" Then Sheets("InvPL").Rows("78:79").EntireRow.Hidden = True Else Sheets("InvPL").Rows("78:79").EntireRow.H
=ROUNDUP(D59/C57,0)
。我猜是因为变量不同,但不知道如何解决它,非常感谢您的帮助
If Range("C59").Value = "0" Then
Sheets("InvPL").Rows("78:79").EntireRow.Hidden = True
Else
Sheets("InvPL").Rows("78:79").EntireRow.Hidden = False
End If
当您除以它时,您需要确保
C57
不是0
,在这种情况下C59
将是#DIV/0代码>(错误)
如果单元格包含错误,则无法检查其.Value
属性
首先检查单元C59的错误:
If IsError(Worksheets("InvPL").Range("C59")) Then
Msgbox "C59 contains an error. If C57=0 then it is a divide by zero error."
Else
If Range("C59").Value = "0" Then
Sheets("InvPL").Rows("78:79").EntireRow.Hidden = True
Else
Sheets("InvPL").Rows("78:79").EntireRow.Hidden = False
End If
End If
或者更干净的版本,使用带有
块的,并使用工作表
而不是工作表
,因为工作表也可以引用图表对象:
With Worksheets("InvPL")
If IsError(.Range("C59")) Then
Msgbox "C59 contains an error. If C57=0 then it is a divide by zero error."
Else
If .Range("C59").Value = "0" Then
.Rows("78:79").EntireRow.Hidden = True
Else
.Rows("78:79").EntireRow.Hidden = False
End If
End If
End With
如果在发生错误的情况下也要隐藏/取消隐藏这些行,则可以稍微更改逻辑
另一种选择是,当C57
为0
时,更改公式以返回零而不是错误:
=IF(C57=0,0,ROUNDUP(D59/C57,0))
当您除以它时,您需要确保C57
不是0
,在这种情况下C59
将是#DIV/0代码>(错误)
如果单元格包含错误,则无法检查其.Value
属性
首先检查单元C59的错误:
If IsError(Worksheets("InvPL").Range("C59")) Then
Msgbox "C59 contains an error. If C57=0 then it is a divide by zero error."
Else
If Range("C59").Value = "0" Then
Sheets("InvPL").Rows("78:79").EntireRow.Hidden = True
Else
Sheets("InvPL").Rows("78:79").EntireRow.Hidden = False
End If
End If
或者更干净的版本,使用带有
块的,并使用工作表
而不是工作表
,因为工作表也可以引用图表对象:
With Worksheets("InvPL")
If IsError(.Range("C59")) Then
Msgbox "C59 contains an error. If C57=0 then it is a divide by zero error."
Else
If .Range("C59").Value = "0" Then
.Rows("78:79").EntireRow.Hidden = True
Else
.Rows("78:79").EntireRow.Hidden = False
End If
End If
End With
如果在发生错误的情况下也要隐藏/取消隐藏这些行,则可以稍微更改逻辑
另一种选择是,当C57
为0
时,更改公式以返回零而不是错误:
=IF(C57=0,0,ROUNDUP(D59/C57,0))
非常感谢你,先生!工作出色!非常感谢你,先生!工作出色!