繁体   English   中英

根据 7 个工作表中的单元格值隐藏行 excel VBA

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM