Я хочу получить следующую или предыдущую активную ячейку на основе списка видимых строк.Как получить следующую или предыдущую активную ячейку, избегая невидимых строк
и я тестировал буксировочный подход, чтобы сделать это
первый подход:
ПОЛУЧИТЬ диапазон видимых строк, как это.
Public rng_arr As Range
Public Sub UserForm_Activate()
Set rng_arr = Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, 1)).Rows.SpecialCells(xlCellTypeVisible)
End Sub
, но я не знаю, как соответствовать выбранной ячейке с его противоположностями в моем диапазоне rng_arr, чтобы получить следующую или предыдущую ячейку.
второй подход:
получить следующий из активной ячейки, но не может получить предыдущий.
Public Function NextVisibleCell(Range As Range) As Range
Application.Volatile
Dim i As Long
Set Range = Range.Cells(Range.Rows.Count, Range.Columns.Count)
For i = 1 To Rows.Count - Range.Row
If Not Range.Offset(i).EntireRow.Hidden Then
Set NextVisibleCell = Range.Offset(i)
Exit Function
End If
Next i
End Function
Почему 'Application.Volatile', если не используется как UDF? –
Честно говоря, первый из них цитируется только вторым - это моя мысль –