Здравствуйте, уважаемые колдуны и шаманы. Имеется макрос, который выдает ошибку. Я сделал перехват с помощью сообщения.Со временем это сообщение начало напрягать. Как это все дело можно обойти? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) n = 0 While Worksheets(2).Cells(n + 11, 11).Value <> "" n = n + 1 Wend On Error GoTo ошибка For i = 11 To n + 10
If ActiveCell.Offset(-1, 0) = Worksheets(2).Cells(i, 12).Value Then UserForm3.Show End If
If ActiveCell.Offset(-2, 0) = Worksheets(2).Cells(i, 12).Value Then UserForm2.Show End If Next
If ActiveCell.Offset(-5, -1).Interior.ColorIndex = 6 Then UserForm4.Show End If
If ActiveCell.Offset(-5, 1).Interior.ColorIndex = 27 Then UserForm4.Show End If
If ActiveCell.Interior.ColorIndex = 40 Then UserForm5.Show End If
If ActiveCell.Offset(-4, 0).Interior.ColorIndex = 15 Then UserForm4.Show End If
If ActiveCell.Interior.ColorIndex = 6 Then UserForm1.Show End If If ActiveCell.Interior.ColorIndex = 27 Then UserForm1.Show End If
Exit Sub
ошибка: MsgBox "Ошибка" End Sub
[/vba]
Здравствуйте, уважаемые колдуны и шаманы. Имеется макрос, который выдает ошибку. Я сделал перехват с помощью сообщения.Со временем это сообщение начало напрягать. Как это все дело можно обойти? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) n = 0 While Worksheets(2).Cells(n + 11, 11).Value <> "" n = n + 1 Wend On Error GoTo ошибка For i = 11 To n + 10
If ActiveCell.Offset(-1, 0) = Worksheets(2).Cells(i, 12).Value Then UserForm3.Show End If
If ActiveCell.Offset(-2, 0) = Worksheets(2).Cells(i, 12).Value Then UserForm2.Show End If Next
If ActiveCell.Offset(-5, -1).Interior.ColorIndex = 6 Then UserForm4.Show End If
If ActiveCell.Offset(-5, 1).Interior.ColorIndex = 27 Then UserForm4.Show End If
If ActiveCell.Interior.ColorIndex = 40 Then UserForm5.Show End If
If ActiveCell.Offset(-4, 0).Interior.ColorIndex = 15 Then UserForm4.Show End If
If ActiveCell.Interior.ColorIndex = 6 Then UserForm1.Show End If If ActiveCell.Interior.ColorIndex = 27 Then UserForm1.Show End If
1. устранить ошибку 2. обрабатывать ошибку в месте ей появления и в зависимости от нее делать то или другое. конструкция более обширна 3. Не выводить сообщений, а просто выходить из процедуры.
1. устранить ошибку 2. обрабатывать ошибку в месте ей появления и в зависимости от нее делать то или другое. конструкция более обширна 3. Не выводить сообщений, а просто выходить из процедуры.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
bmv98rus, Ошибка 1004 выскакивает, когда я выделяю ячейки первой, второй и третьей строки рабочего листа, при выделении ячеек, начиная с четвертой строки, макрос работает без ошибок.
bmv98rus, Ошибка 1004 выскакивает, когда я выделяю ячейки первой, второй и третьей строки рабочего листа, при выделении ячеек, начиная с четвертой строки, макрос работает без ошибок.tasdel
Сообщение отредактировал tasdel - Четверг, 16.09.2021, 08:37