AndVGri
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору kiVAR Глубокоуважаемейший, Вы внимательно посмотрели на свой код? При любом вводе в диапазон ячеек столбца А или В (в 2007, например, 1 до 2 миллионов) у Вас будут изменяться формулы в столбце С со 2 строки по 10. Поэтому Вам в коде и указали на блокировки обработки событий и обновления экрана. Проще же всё это написать было так Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim iRow As Long iRow = Target.Row 'получаем строку ввода и только для неё проводим изменения If Target.Column = 1& Then If IsNumeric(Cells(iRow, 1&).Value) And IsNumeric(Cells(iRow, 2&) Then _ Cells(iRow, 3&).Formula = "=" & Cells(iRow, 3&).Value & "-" & Cells(iRow, 2&).Addres ElseIf Target.Column = 2& Then If IsNumeric(Cells(iRow, 1&).Value) And IsNumeric(Cells(iRow, 2&) Then _ Cells(iRow, 3&).Formula = "=" & Cells(iRow, 3&).Value & "+" & Cells(iRow, 1&).Address End If End Sub Дополнительно, если необходимо, ввести проверку - находится ли iRow в требуемом диапазоне строк? И ещё. Вы проверяете на числовые значения ячейки Cells(iRow, 1&) и Cells(iRow, 2&), а почему не проверяете Cells(iRow, 3&)? Далее, может имеет смысл добавить и проверку на формулу в ячейке Cell(iRow, 3&)? | Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 04:13 30-03-2007 | Исправлено: AndVGri, 04:24 30-03-2007 |
|