Как кодировать макрос VBA, чтобы каждый раз запускать oop из другого значения списка проверки данных - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь запустить тот же l oop для большого списка проверки. Проблема здесь в том, что он всегда начинается с начала (или вершины) списка проверки данных, и я хотел бы начинать каждый раз, когда я запускаю макрос, с текущего выбранного значения в списке проверки и с go до Следующее значение до конца. Любая подсказка очень ценится!

Dim dvCell As Range
 Dim inputRange As Range
 Dim c As Range
 Dim i As Long


 'Which cell has data validation
 Set dvCell = Worksheets("ValperSIS").Range("e20")
 'Determine where validation comes from
 Set inputRange = Evaluate(dvCell.Validation.Formula1)


 i = 1
 'Begin our loop
 Application.ScreenUpdating = False

For Each c In inputRange
 dvCell = c.Value

    If Range("CHECKSIS") = False Then
    Exit For
    End If
Sheets("ValperSIS").Copy After:=Sheets(Sheets.Count)
On Error Resume Next
ActiveSheet.Name = Range("e20").Value
On Error GoTo 0
ActiveSheet.Cells.Copy
ActiveSheet.Cells.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next c

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Карма, вы правы, я хочу, чтобы l oop остановился, когда применяется «выход для», и что бы это ни случилось, я хотел выбрать новое начальное значение списка проверки до гнезда «выход для» останавливает l oop -

0 голосов
/ 04 мая 2020

Может как то так?

Предположим, что список представляет собой именованный диапазон в столбце A, называемый «данными» на Листе 1.
enter image description here

Ячейка проверки A1, ссылаясь на список "= data" на листе 2.
enter image description here

В модуле листа Sheet2:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
With Sheets("Sheet2")
Set c = .Range("data").Find(Target.Value, lookat:=xlWhole)
Set Rng = .Range(c, c.End(xlDown))
For Each cell In Rng
MsgBox cell.Value 'the code to loop
Next
End With
End If
End Sub

Когда пользователь выбирает любой элемент в проверке ячейки,
l oop начнется с выбора до конца, например:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...