首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于隐藏可变行号之间的行的Excel宏

用于隐藏可变行号之间的行的Excel宏
EN

Stack Overflow用户
提问于 2018-01-05 06:40:46
回答 2查看 1.1K关注 0票数 0

我正在尝试创建一个宏,它将只显示数据表的顶部20行和底部20行,并隐藏第20行和第n-19行之间的所有行。

第一行不是静态行-它可以被标识为B列中值为"Company“的行之后的下一行。

最后一行也不是静态的,因为数据的总行数会随着时间的推移而变化。

不幸的是,我不熟悉vba,而且这个逻辑很难实现。有没有人能帮我弄一个宏来做这件事?

任何帮助都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-05 06:57:25

这应该是可行的:

代码语言:javascript
运行
复制
Sub hide_in_between()
Dim ws      As Worksheet
Dim startCell As Range, endCell As Range

Set ws = Worksheets("Sheet1")    ' CHANGE as necessary

With ws
    Set startCell = .Range("B:B").Find(what:="Company").Offset(1, 0)
    Set endCell = .Range("B" & .Rows.Count).End(xlUp)

    Dim topGroup As Range, bottomGroup As Range

    Set topGroup = .Range(startCell, startCell.Offset(19, 0))
    Set bottomGroup = .Range(endCell.Offset(-19, 0), endCell)

    Dim hiddenGroup As Range
    Set hiddenGroup = .Range(topGroup.Rows(topGroup.Rows.Count), bottomGroup.Rows(1).Offset(-1, 0))

    hiddenGroup.EntireRow.Hidden = True
End With

End Sub

它相对简单,如果不是有点冗长的话(它可能会被缩短)。然而,对于学习来说,这应该会有很大帮助。请注意,您

票数 0
EN

Stack Overflow用户

发布于 2018-01-05 07:06:34

首先将它们全部隐藏起来,然后取消隐藏顶部和底部:

代码语言:javascript
运行
复制
Sub HideAndSeek()

    n1 = Columns("B").Find("Company").Row + 1
    n2 = Cells(Rows.Count, "B").End(xlUp).Row

    Rows(n1 & ":" & n2).EntireRow.Hidden = True

    For i = 0 To 19
        Cells(i + n1, "B").EntireRow.Hidden = False
        Cells(n2 - i, "B").EntireRow.Hidden = False
    Next i
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48104634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档