У меня есть макрос, который зацикливается на выбранном отфильтрованном диапазоне ячеек и выполняет некоторые действия только для выбранных ячеек.
В настоящее время цикл выполняется с помощью кнопки «Далее» с сообщением для запросапользователь, если он хочет продолжить (Да / Нет).Я хотел бы изменить метод цикла с помощью «Сделать пока» с окном сообщений, включающим 3 варианта («Предыдущий», «Следующий», «Выход») вместо 2 («Да», «Нет»).В этом новом цикле я бы использовал счетчик, связанный с положением линии ячейки в фильтруемом диапазоне, и сделал бы что-то вроде:
Case Previous : Counter = Counter - 1
Case Next : Counter = Counter + 1
Case Quit : Exit For
Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как легко работать со счетчиком, поскольку мой цикл For Next в настоящее время не имеет счетчика, и в качестве ссылки на позицию ячейки для отфильтрованного диапазона непросто.
Любое предложение о том, как действовать?
Спасибо!
Sub newstuff()
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Do you want to continue ?" ' Define message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Define buttons.
Title = "MsgBox Demonstration" ' Define title.
Help = "DEMO.HLP" ' Define Help file.
Ctxt = 1000 ' Define topic
' context.
' Display message.
Dim addr As String
addr = Selection.Address 'Select a range of filtered cells in a column
Dim cl As Range, rng As Range
Set rng = Range(addr)
For Each cl In rng.SpecialCells(xlCellTypeVisible)
Debug.Print cl 'Do some stuff for each cell of the filtered range
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbNo Then ' User chose No.
Exit For
End If
Next cl
End Sub