excel - 检查单元格的值时类型不匹配
问题描述
我有这个代码
错误 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.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
而不是Sheets
因为工作表也可以引用图表对象:
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
另一种选择是更改公式以在is时返回零而不是错误0
:
=IF(C57=0,0,ROUNDUP(D59/C57,0))
推荐阅读
- python - 如何从python中的对象中删除时间
- vba - 需要帮助创建 VBA 代码,以提取每个电子邮件带有子文件夹的附件
- python - 当我在 kivyLauncher 上加载带有我自己的类的 Kivy 应用程序时崩溃了
- java - setLayout() 到 BoxLayout 导致 JPanels 消失
- mysql - MySQL:我有一个带有 ORDER BY 和 GROUP BY 的查询,但 GROUP BY 总是在同一行分组
- python - discord.py 语音排行榜
- sql - 按 2 列的最新日期排序
- http - 允许从不同的源子域使用 cookie
- tcp - libp2p 节点给出错误:连接 ECONNREFUSED
- javascript - Best way to set dimensions for Material UI dialog on mobile?