[英]Excel VBA code (assigned to a button) to hide/unhide rows based on cell values across multiple sheets
[英]Hide rows based on cell value across 7 sheets excel VBA
我搜索了数据库来回答我的问题,但我找不到类似的情况。 前 4 个工作表在显示的姓氏和完全相同的范围/空单元格数量方面始终相同。 最后 3 个工作表也将具有相同的情况,空单元格的范围/# 完全相同,但范围将与工作表 1-4 不同。 我希望编写 VBA 以根据每个工作表的 A 列中的单元格值隐藏整行。 A 列中的单元格填充有公式。
工作表 1-4 范围 A9-A58:
Column A
Johnson
Peterson
Anderson
(empty)
(empty)
(empty)
工作表 5-7 范围 A16-A65:
Column A
Johnson
Peterson
Anderson
(empty)
(empty)
(empty)
结果我正在寻找所有工作表:
Column A
Johnson
Peterson
Anderson
这是我试过的代码:
Sub Macro1()
'
' Macro1 Macro
'
Sheets("Sheet 1").Select
Rows("19:58").Select
Selection.EntireRow.Hidden = True
Sheets("Sheet 2").Select
Rows("19:58").Select
Selection.EntireRow.Hidden = True
Sheets("Sheet 3").Select
Rows("19:58").Select
Selection.EntireRow.Hidden = True
Sheets("Sheet 4").Select
Rows("19:58").Select
Selection.EntireRow.Hidden = True
Sheets("Sheet 5").Select
Rows("26:65").Select
Selection.EntireRow.Hidden = True
Sheets("Sheet 6").Select
Rows("26:65").Select
Selection.EntireRow.Hidden = True
Sheets("Sheet 7").Select
Rows("26:65").Select
Selection.EntireRow.Hidden = True
End Sub
问题是我必须手动选择空行并逐张进行以使其工作。 根据每个工作表的特定范围内的单元格值隐藏空行会很好。
我对 VBA 的编写方式持开放态度,无论是通过屏幕更新还是自动过滤。 感谢您的帮助/专业知识!
根据我的评论,将为您提供循环如何工作的起点。
首先,我们将布置一些参数... 7 张纸,2 个定义的范围。 让我们从范围开始:
Dim aStart as Long, aStop as Long, bStart as Long, bStop as Long
aStart = 19
aStop = 58
bStart = 26
bStop = 65
所以你有一些由它们的行勾勒出的范围(a 是第一个范围,b 是第二个范围)。 怎么办? 您想查看它们之间的每一行,也就是循环,以确定它是否包含数据,特别是在 A 列中。
Dim i as Long
For i = aStart to aStop
If Cells( i, "A").Value = "" Then
Rows(i).EntireRow.Hidden = True
End If
Next i
看起来很简单,我希望。 循环使用 i 作为行,同时查看 A 列中的迭代行,一次一个。
对于 bStart/bStop,这看起来非常相似。 唯一的添加是根据工作表名称/编号使任何一种发生...。 有无数种方法可以实现这一点,这取决于你自己试一试,因为到目前为止我已经给了你很多,只是基于录制一个宏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.