【发布时间】:2015-08-20 15:45:20
【问题描述】:
在 Excel 2013 中,当行在 C 列到 H 列中的值为 0 时,我想隐藏一行及其上方的行。C 列到 H 列是合并单元格。例如,如果 C7:H7 的值为 0,我想隐藏第 7 行和第 6 行。这个 C6:H53 的整个范围。每隔一个奇数行都有文本或 0。当奇数行号为 0 时,我想隐藏该行和其上方的偶数行号。对于工作簿中的另一个范围 (C77:H233),我有一个工作宏,它隐藏了一个值为 0 的行,但我无法找出正确的代码来隐藏该行以及 C6:H53 范围的上面的行.
Row #/COL A COL B COL C COL D COL E COL F COL G COL H
4 SALES/GROSS MARGIN
5 Sales Costs GP% Bdgt % Bdgt Diff
6 Siding 0 0 #DIV/0! #DIV/0!
7 0.00
8 Tile 0 0 #DIV/0! #DIV/0! 0.00
9 0.00
10 Tools & Hardware 330 -315 0.045454545 #VALUE!
11 Two sales to Joe Roofing and Riviera Ridge Roofing with
no budget. No comment from managers.
12 Windows 0 0 #DIV/0! #DIV/0!
13 0.00
14 Fabricated Products 0 0 #DIV/0! #DIV/0!
15 0.00
在上面 C7:H7 行中值为 0 的示例中,我想隐藏第 6 行和第 7 行,C9:H9 中的值 0 然后隐藏第 8 行和第 9 行,C13:H13 中的值 0然后隐藏 12 和 13,值在 C15:H15 0 然后隐藏 14 和 15 等。我希望行 10 和 11 显示为 C11:H11 中有文本。
我尝试过的许多代码中的最后一个是
Sub HideSales()
Dim cell As Range
For Each cell In Range("Sales")
If Sales.Address = "C7:H7" Then
If cell.Value = 0 Then
Rows(6:7).EntireRow.Hidden = True
Else
Rows(6:7).EntireRow.Hidden = False
End If
End Sub
VBE 不喜欢多行 - 第一行 Sub HideSales() 以黄色突出显示,具有 Rows(6:7) 的两行都以红色突出显示。
不知道下一步该去哪里。放弃了其他 2 个网站 - 甚至无法提交问题。
【问题讨论】:
-
您的“For Each”循环末尾没有“Next”;您的“If”循环之一的末尾也没有“End If”。
-
我不知道你为什么担心'零的行和它上面的行'。您要隐藏的每一行在 C 列中不是都有 0 或 0.00 吗?