2014年3月14日金曜日

非表示の行をスキップし、可視行(列)までにOffsetする関数を作りました

非表示の行をスキップし、可視行(列)までにOffsetする関数を作りました
Function offsetVisible(ByRef baseCl As Range, offsetX As Long, offsetY As Long) As Range
    Dim targetCl As Range
    Set targetCl = baseCl.Offset(offsetX, offsetY)
    Do Until targetCl.EntireRow.Hidden = False
        If offsetX > 0 Then
            Set targetCl = targetCl.Offset(1, 0)
        ElseIf offsetX < 0 Then
            Set targetCl = targetCl.Offset(-1, 0)
        End If
        If offsetY > 0 Then
            Set targetCl = targetCl.Offset(0, 1)
        ElseIf offsetY < 0 Then
            Set targetCl = targetCl.Offset(0, -1)
        End If
    Loop
    Set offsetVisible = targetCl
End Function

0 件のコメント:

コメントを投稿