Дима Окружко
Мастер
(1336),
на голосовании
3 года назад
Пытаюсь выполнить данный код и получаю ошибку 1004: Application-defined or object-defined error. For i = 1 To 15 For j = 16 To 200 If ThisWorkbook.ActiveSheet.Range(ThisWorkbook.ActiveSheet.Cells(j, i)).Locked = False Then ThisWorkbook.ActiveSheet.Range(ThisWorkbook.ActiveSheet.Cells(j, i)).Interior.Color = RGB(0, 255, 0) End If Next j Next i Код вызывается из обработчика события CheckBox - CheckBox1_Click.(Того CheckBox который на листе, а не того, который на форме). Т. е. код находится не в Модуле, а привязан к листу. Как исправить? Что не так?
Дополнен 3 года назад
Уже разобрался. Оказалось при объявлении Range через Cells, всегда нужно задавать два объекта Cells. Вот так: Range(Cells(j, i), Cells(j, i)) А я этого не знал. Мой тупняк - другим наука.
For i = 1 To 15
For j = 16 To 200
If ThisWorkbook.ActiveSheet.Range(ThisWorkbook.ActiveSheet.Cells(j, i)).Locked = False Then
ThisWorkbook.ActiveSheet.Range(ThisWorkbook.ActiveSheet.Cells(j, i)).Interior.Color = RGB(0, 255, 0)
End If
Next j
Next i
Код вызывается из обработчика события CheckBox - CheckBox1_Click.(Того CheckBox который на листе, а не того, который на форме). Т. е. код находится не в Модуле, а привязан к листу.
Как исправить? Что не так?