Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft/Office Excel _ Еще вопрос по VBA

Автор: Sellf Среда, 17 Сентября 2008, 21:14

Пишу код для отображения/скрытия примечаний:

Код
Private Sub tglRemark_Change()
If tglRemark.Value = True Then
   ВидимостьПримечаний True
Else
   ВидимостьПримечаний False
End If
End Sub

Sub ВидимостьПримечаний(Видимость)
For i = 2 To 7
   Cells(i, 1).Comment.Visible = Видимость
Next i
End Sub


При запуске выскакивает ошибка Run-time error '91': Object variable or With block variable not set для строки
Cells(i, 1).Comment.Visible = Видимость

Кто-нибудь может подсказать причину ошибки?

Добавлено Sellf, [mergetime]1221675251[/mergetime]
Я скоро с этим языком смеяться перестану. Если закрыть и снова открыть книгу с макросом, все работает и ошибка исчезает.


Автор: pashulka Среда, 17 Сентября 2008, 23:45

На самом деле ошибка может возникнуть если в момент выполнения инструкций активным окажется лист не имеющий ячеек, к примеру лист диалога, лист диаграммы или в диапазоне [A2:A7] окажется ячейка не содержащая комментария (об'ект Comment)

Код
Private Sub tglRemark_Change()
   If TypeOf ActiveSheet Is Worksheet _
   Then CommentVisible tglRemark.Value
End Sub

Private Sub CommentVisible(iVisible As Boolean)
   For iRow& = 2 To 7
       With Cells(iRow&, "A")
            If Not .Comment Is Nothing _
            Then .Comment.Visible = iVisible
       End With
   Next
End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)