Добрый день уважаемые форумчане.
Учусь самостоятельно работать в VBA, параллельно автоматизирую различные несложные рабочие сценарии.
При написании последнего макроса столкнулся с ошибкой, которую никак не получается исправить, либо найти её причины. Ошибка наверняка очень глупая, либо я просто нарушил какое-то неизвестное мне фундаментальное правило в написании.
К делу. Имеется макрос, который отыскивает на листе "Трафик" в столбце I значения "Ок" или "Внимание". В случае нахождения - копирует некоторые данные строки в которой нашел нужное значение на лист Автоматические тесты" и переходит к следующей строке, пока не дойдет до 60й, на которой его работа заканчивается. Макрос полностью рабочий, вот он.
Код |
---|
Sub Razchet()
Dim List As String
Application.ScreenUpdating = False
List = "Трафик"
For x = 12 To 60
Worksheets("Трафик").Activate If Cells(x, 9).Value = "Ок" Or Cells(x, 9).Value = "Внимание" Then
Worksheets("Автоматические тесты").Activate
Cells((x - 1), 11).Value = Worksheets(List).Cells(2, 2)
Cells((x - 1), 12).Value = Worksheets(List).Cells(2, 3)
Cells((x - 1), 13).Value = Worksheets(List).Cells(5, 2)
Cells((x - 1), 14).Select
ActiveCell.FormulaR1C1 = "Высокий"
Cells((x - 1), 15).Value = Worksheets(List).Cells(x, 1)
Cells((x - 1), 16).Value = Worksheets(List).Cells(x, 8)
If Worksheets(List).Cells(x, 9) = "îê" Then
Cells((x - 1), 17).Select
ActiveCell.FormulaR1C1 = "Завершено, ошибок нет" Else:
End If
If Worksheets(List).Cells(x, 9) = "Внимание" Then
Cells((x - 1), 17).Select
ActiveCell.FormulaR1C1 = "Завершено, есть ошибки" Else:
End If
Cells((x - 1), 18).Value = Worksheets(List).Cells(x, 11)
Cells((x - 1), 19).Value = Worksheets(List).Cells(x, 5)
Cells((x - 1), 20).Value = Worksheets(List).Cells(x, 10)
Else:
End If
Next x
End Sub
|
Далее я модернизировал макрос до такого вида:
Код |
---|
Sub Razchet()
Dim List As String
Application.ScreenUpdating = False
List = "Трафик"
For x = 12 To 60
For y = 11 To 59
Worksheets("Трафик").Activate If Cells(x, 9).Value = "Ок" Or Cells(x, 9).Value = "Внимание" Then
Worksheets("Автоматические тесты").Activate
Cells(y, 11).Value = Worksheets(List).Cells(2, 2)
Cells(y, 12).Value = Worksheets(List).Cells(2, 3)
Cells(y, 13).Value = Worksheets(List).Cells(5, 2)
Cells(y, 14).Select
ActiveCell.FormulaR1C1 = "Высокий"
Cells(y, 15).Value = Worksheets(List).Cells(x, 1)
Cells(y, 16).Value = Worksheets(List).Cells(x, 8)
If Worksheets(List).Cells(x, 9) = "îê" Then
Cells(y, 17).Select
ActiveCell.FormulaR1C1 = "Завершено, ошибок нет" Else:
End If
If Worksheets(List).Cells(x, 9) = "Внимание" Then
Cells(y, 17).Select
ActiveCell.FormulaR1C1 = "Завершено, есть ошибки" Else:
End If
Cells(y, 18).Value = Worksheets(List).Cells(x, 11)
Cells(y, 19).Value = Worksheets(List).Cells(x, 5)
Cells(y, 20).Value = Worksheets(List).Cells(x, 10)
Else:
End If
Next x
Next y
End Sub |
и работать он перестал выдавая invalid next variable control reference.
Помогите найти ошибку (и не сильно ругайте если она окажется глупой).
Спасибо!