Добры день, есть макрос для синхронизации одного значения с другим, первое значение - задано, это число уникальных значений в списке (С1), второе (D1) - число значений в столбике (A:A) и есть макрос добавляющий значения в список A:A если второе значение меньше первого, еще один макрос очищает список A:A если второе значение случайно оказалось больше первого (хоть это скорее гипотетическая ситуация), но вот как остановить макрос когда значения сравнялись?
К сожалению мне нужно остановить именно данный макрос, а точнее цикл синхронизации и перейти к следующему шагу макроса в который будет входить данный цикл.
Sub Синхро()
Dim A As Double
Dim B As Double
Dim i As Long
Dim bExit As Boolean
Do
A = Range("C1").Value
B = Range("D1").Value
If A > B Then
For i = B + 1 To A Step 1
Макрос1
Next
ElseIf A < B Then
For i = A + 1 To B Step 1
Очистить
Next
Else
bExit = True
End If
If bExit Then Exit Do
Loop
End Sub
Из того что я понял ранее, именно он задает цикл по условию, пока А не будет равняться B вспомогательный макрос1 срабатывает раз за разом наращивая B
Попробовал так, спотыкается на первом Else
Код
Sub Синхро()
Dim A As Double
Dim B As Double
Dim i As Long
Dim bExit As Boolean
Do
A = Range("C1").Value
B = Range("D1").Value
If A = B Then Exit Sub
Else
If A > B Then
For i = B + 1 To A Step 1
Макрос1
Next
ElseIf A < B Then
For i = A + 1 To B Step 1
Очистить
Next
Else
bExit = True
End If
bExit = True
End If
If bExit Then Exit Do
Loop
End Sub
Sub Синхро()
Dim A As Double, B As Double
Dim i As Long
Dim bExit As Boolean
A = Range("C1").Value: B = Range("D1").Value
Select Case True
Case A = B
Exit Sub
Case A > B
For i = B + 1 To A Step 1
Макрос1
Next i
Case A < B
' For i = A + 1 To B Step 1
Очистить
' Next i
End Select
End Sub
P.S. Я Вам отвечал на вопрос, написанный в заголовке темы. Сейчас заглянул в файл... Зачем в цикле чистить диапазон, еcли это делается за один раз? Зачем Do/Loop?
vikttur написал: Создайте тему ПО ЗАДАЧЕ. В этой теме ответы даны.
К сожалению vba за пределами записей ридера, для меня лишь чуть проще китайской грамоты, 2.08 создавал тему и там мне предложили такой вариант решения, для аналогичного случая, там он работает, а здесь почему то нет, хотя разницы в исходных я не вижу, но видимо она есть... Еще раз большое спасибо, сейчас попробую Ваш вариант прикрутить к предыдущему случаю, возможно он будет работать быстрее.