【问题标题】:Select Range from current cell to 7 next visible cells (VBA)选择从当前单元格到下一个可见单元格的范围(VBA)
【发布时间】:2021-11-01 12:38:26
【问题描述】:

我过滤了一个只有可见单元格的范围。我有一个 For Each 循环,在每个循环中应该使单元格加粗+列中粗​​体中的下 6 个可见单元格。

我不小心首先用 .Offset 制作了它,但显然它也考虑了过滤的单元格。如何根据 For 循环中的当前单元格和接下来的 6 个元素/单元格在我的 rng 中选择一个范围?

【问题讨论】:

  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: excel vba


【解决方案1】:

.SpecialCells(xlCellTypeVisible),但困难的部分是知道给它的范围,这样你就可以准确地返回 7。你可以循环遍历,一次添加一个单元格,直到你返回 7,但那是间接且缓慢。更好的方法是检查每个单元格是否被隐藏,直到找到 7 个不是。

我创建了一个函数,它接受一个范围,并返回该范围和它下面的下 6 个未隐藏的单元格。

Sub Example()
    AndTheNext6(Range("A1")).Font.Bold = True
End Sub

Function AndTheNext6(StartFrom As Range) As Range
    Dim r As Integer, Count As Integer
    r = StartFrom.Row
    Dim SelectRange As Range
    Set SelectRange = StartFrom
    While Count < 6 And r < StartFrom.Parent.Rows.Count
        r = r + 1
        If StartFrom.Parent.Rows(r).Hidden = False Then
            Set SelectRange = Union(SelectRange, StartFrom.Parent.Cells(r, StartFrom.Column))
            Count = Count + 1
        End If
    Wend
    Set AndTheNext6 = SelectRange
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 2017-08-21
    相关资源
    最近更新 更多