Добрый день. Нужно чтобы при изменении ячеек на листе внутри диапазона передавались данные в sql. Не получается ограничить действия диапазоном. При перечислении ячеек все работает. На даный момент реализовано ректально. Минус нынешней реализации, при изменении ячеек вне диапазона vba выдает ошибку. Подскажите, пожалуйста, как правильно ограничить действия диапазоном.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
...
Select Case Target.Address
Case [A1].Address: [A9] = Target.Value
'Case Range("B7:G65").Address: Sql_insert paramId, Datetime, Target.Value
Case Else: Sql_insert paramId, Datetime, Target.Value
End Select
...
END SUB
Доброго времени суток. Еще появились глупые вопросы. Данный диапазон необходимо очистить при открытии книги. Очищаю:
Код
Private Sub workbook_open()
Range("B9:G85").Value = "-"
End Sub
В обработку диапазона добавляю условие:
Код
If Not Application.Intersect(Target, Range("B9:G85")) Is Nothing Then
If Target.Value <> "-" Then
Sql_insert paramId, Datetime, Target.Value
End If
End If
При ручном внесении данных работает корректно. Но при открытии книги выдает ошибку о несовпадении типов в строке:
If Not Application.Intersect(Target, Range("B7:G85")) Is Nothing Then
If TypeName(Target.Value) = "Double" Then
Sql_insert paramId, Datetime, Target.Value
End If
End If
ncux199rus, если Target состоит более чем из одной ячейки, то Target.Value - массив. Насколько правильно - зависит от задачи. Процедура Sql_insert будет вызвана, только если Target состоит из одной ячейки И в этой ячейке число.