我搜索了数据库以回答我的问题,但我找不到类似的情况。前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的编写方式持开放态度,无论是屏幕更新还是自动过滤。感谢您的帮助/专业知识!
答案 0 :(得分:1)
根据我的评论,将为您提供循环工作的起点。
首先,我们将布置一些参数... 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,这看起来非常相似。唯一的补充是根据工作表名称/编号进行。有很多方法可以实现这一点,并且由于我只是在录制一个宏的基础上给了你很多东西,所以会让你发动旋转。