【发布时间】:2022-10-23 19:49:01
【问题描述】:
【问题讨论】:
-
你的工作表是由什么东西生成的吗? (VBA/公式等或手动编辑)隐藏行很容易,但如果您需要添加更多记录,取消隐藏它们可能会很痛苦
-
VLookup 从另一张表中提取所有产品。在另一张表上粘贴产品。数量可能会根据公司是否添加产品而改变。我对此很陌生。
标签: excel
【问题讨论】:
标签: excel
将以下代码放在一个新模块中(VBA 编辑器,插入-> 模块)。
Public Sub ToggleRows()
Dim Sheet As Worksheet
Dim Row As Long
Set Sheet = ThisWorkbook.Worksheets("Sheet1") ' Replace with the name of your worksheet
' Get Row Number of last Row
Row = Sheet.UsedRange.Rows.Count + Sheet.UsedRange.Row - 1
Application.ScreenUpdating = False
While Row > 1 ' (exclude header row)
' Hide/Unhide Row depending on value in Column A
Sheet.Rows(Row).EntireRow.Hidden = IIf(Sheet.Cells(Row, "A").Value = 0, True, False)
Row = Row - 1
Wend
Application.ScreenUpdating = True
End Sub
复制它后,当您按下“开发人员”选项卡中的“宏”按钮时,列表中应该有一个“ToggleRows”宏。
如果您希望宏自动运行,则需要再添加几行代码。
打开工作表的代码模块并输入以下内容
Private Sub Worksheet_Calculate()
ToggleRows
End Sub
对于问题的第二部分,您应该能够使用条件格式。
有很多方法可以做到,其中一种方法是: 选择 I->O 列并选择新规则从条件格式菜单中,然后选择使用公式确定要格式化的单元格
输入一个公式(下面的示例),然后指定格式。
=IF(SUM(INDIRECT("I"&ROW()&":O"&ROW()))=0,TRUE,FALSE)
如果单元格总和 I-O 等于 0,则应用格式,否则不应用。
【讨论】: