【发布时间】:2018-12-13 18:57:11
【问题描述】:
我有一个 Excel 工作表,我想根据另一个单元格中的值隐藏或取消隐藏某些行。
简而言之:
整个事情应该取决于单元格中的值C2、D2、E2。
如果C2 为空白 我希望rows 31 to 40 被隐藏,如果它非空白,它们需要可见 .
其他三个单元格相同,始终隐藏/取消隐藏以下 10 行:
D2 --> rows 41 to 50
E2 --> rows 51 to 60
我尝试了这段代码,但它不起作用,我也没有收到任何错误:
Sub Hide_rows()
If Range("LS!C2") = 0 Then
Rows("31:40").EntireRow.Hidden = True
Else
If Range("LS!D2") = 0 Then
Rows("41:50").EntireRow.Hidden = True
Else
If Range("LS!E2") = 0 Then
Rows("51:60").EntireRow.Hidden = True
Else
If Range("LS!C2") > 0 Then
Rows("31:40").EntireRow.Hidden = False
Else
If Range("LS!D2") > 0 Then
Rows("41:50").EntireRow.Hidden = False
Else
If Range("LS!E2") > 0 Then
Rows("51:60").EntireRow.Hidden = False
Else
End If
End If
End If
End If
End If
End If
End Sub
谢谢!
【问题讨论】:
-
它是如何“不工作”的?这是非常模糊的,没有足够的信息来提供太多帮助。一个好的第一步是单步执行代码(使用 F8)一次一行,检查变量值等,找出问题所在。
-
为了可读性,我建议你使用
ElseIf语句。 -
包括缩进在内的正确格式很重要,原因有很多,这是一个很好的例子。使用 F8 运行该过程,应该更容易找到问题所在。另外一个强烈推荐阅读是:Chip Pearson's Debugging VBA。此外,请查看tour(它为您赢得了徽章!)以及“How to Ask”,还阅读了有关包含minimal reproducible example 的信息。 (顺便说一句,欢迎!)
-
@ashleedawg 我有时会看到一些原因,但如果你能指出一些“永远不会”的原因,我将不胜感激。
-
@ashleedawg 没有冒犯